我正在调试从Objective-C转换的下拉菜单。在里面,我有这个功能:
func showMenu() {
self.menu.hidden = false
self.menu.translatesAutoresizingMaskIntoConstraints = true
closedMenuShape.removeFromSuperlayer()
if shouldDisplayDropShape {
self.view.layer.addSublayer(openMenuShape)
}
// Set new origin of menu
var menuFrame: CGRect = self.menu.frame
menuFrame.origin.y = self.menubar.frame.size.height - self.offset()
var containerAlpha: CGFloat = fadeAlpha
if SYSTEM_VERSION_LESS_THAN("7.0") {
UIView.beginAnimations(nil, context: nil)
UIView.setAnimationCurve(.EaseInOut)
self.menu.frame = menuFrame
self.container.alpha(containerAlpha) <======= Error
}
else {
UIView.animateWithDuration(0.4,
delay: 0.0,
usingSpringWithDamping: 1.0,
initialSpringVelocity: 4.0,
options: .CurveEaseInOut,
animations: {
self.menu.frame = menuFrame
self.container.alpha(containerAlpha) <==== Error
}, completion: {(finished: Bool) in
})
}
UIView.commitAnimations()
}
在那里,我标记了错误是否出现,行上是self.container.alpha(containerAlpha)
。错误显示为Cannot call value of non-function type 'CGFloat'
,这是容器的声明:
@IBOutlet weak var container: UIImageView!
我已导入UIKit
。是什么原因导致了这个错误?
如果你需要更多信息,请告诉我。
由于UIImageView
具有alpha属性(而不是方法),因此需要将alpha值分配给UIImageView
,如下所示:
self.container.alpha = containerAlpha
另一方面;如果UIImageView
确实有alpha方法,则使用
self.container.alpha(containerAlpha)