[英]What is a "(UIView) -> CGFloat"? I am trying to get a CGFloat value
extension UIScrollView {
func scrollPositionY(view:UIView) -> CGFloat {
if let origin = view.superview {
// Get the Y position of your child view
let childStartPoint = origin.convert(view.frame.origin, to: self)
let this = childStartPoint.y
return this
}
}
}
进而
let theYvalue = theScrollView.scrollPositionY
theYvalue
的类型为(UIView) -> CGFloat
我可以将其转换为 CGFloat 吗?
谢谢!
let theYvalue = theScrollView.scrollPositionY
只是将函数分配给 Yvalue
我想你想要的是
let theYvalue = theScrollView.scrollPositionY()
它评估函数并且应该是函数返回的 CGFloat。
你没有调用这个函数。 使用()
调用函数,并且因为您有参数,所以需要传入参数,例如(view: someViewPassedIn)
其中someViewPassedIn
必须是UIView
类型。
在 Swift 中,函数和闭包之间的区别非常小。 变量可以设置为一个闭包,这就是(UIView) -> CGFloat
是什么。 它是一个没有像函数一样被调用的闭包。
可能很难理解,但基本上闭包包含大括号/大括号之间的代码块, {}
和()
运行该代码块。
代替:
let theYvalue = theScrollView.scrollPositionY
尝试:
let theYvalue = theScrollView.scrollPositionY(view: someViewPassedIn)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.