什么是“(UIView) -> CGFloat”?我正在尝试获取 CGFloat 值
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
只是把函数赋值给Y值
我觉得你想要的是
let theYvalue = theScrollView.scrollPositionY()
计算函数并且应该是一个 CGFloat,函数 returns.
你没有调用函数。使用()
调用函数,因为你有参数,所以需要传入参数,比如(view: someViewPassedIn)
,其中someViewPassedIn
必须是UIView
.
类型
在Swift中,函数和闭包的差别很小。变量可以设置为闭包,这就是 (UIView) -> CGFloat
的意思。它是一个没有像函数一样被调用的闭包。
可能很难理解,但基本上闭包包含卷曲 brackets/braces、{}
和 ()
之间的代码块运行该块代码。
而不是:
let theYvalue = theScrollView.scrollPositionY
尝试:
let theYvalue = theScrollView.scrollPositionY(view: someViewPassedIn)
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
只是把函数赋值给Y值
我觉得你想要的是
let theYvalue = theScrollView.scrollPositionY()
计算函数并且应该是一个 CGFloat,函数 returns.
你没有调用函数。使用()
调用函数,因为你有参数,所以需要传入参数,比如(view: someViewPassedIn)
,其中someViewPassedIn
必须是UIView
.
在Swift中,函数和闭包的差别很小。变量可以设置为闭包,这就是 (UIView) -> CGFloat
的意思。它是一个没有像函数一样被调用的闭包。
可能很难理解,但基本上闭包包含卷曲 brackets/braces、{}
和 ()
之间的代码块运行该块代码。
而不是:
let theYvalue = theScrollView.scrollPositionY
尝试:
let theYvalue = theScrollView.scrollPositionY(view: someViewPassedIn)