当使用动画块内函数的参数时,Swift 无法解析 UIView.animateWithDuration 中的 CurveEaseIn
Posted
技术标签:
【中文标题】当使用动画块内函数的参数时,Swift 无法解析 UIView.animateWithDuration 中的 CurveEaseIn【英文标题】:Swift cant resolve CurveEaseIn in UIView.animateWithDuration when using parameter from function inside animation block 【发布时间】:2015-06-19 09:44:11 【问题描述】:我正在尝试将参数传递给函数以动态更改动画块中的布局约束。
这行得通:
func moveKeyboard (up: Bool, newMargin: Int)
UIView.animateWithDuration(0.2, delay: 0, options: .CurveEaseIn, animations:
self.topMarginConstraint.constant=10;
, completion: finished in
println("Animation end!")
)
这没有(我收到错误“找不到成员 CurveEaseIn”):
func moveKeyboard (up: Bool, newMargin: Int)
UIView.animateWithDuration(0.2, delay: 0, options: .CurveEaseIn, animations:
self.topMarginConstraint.constant=newMargin;
, completion: finished in
println("Animation end!")
)
我应该如何定义我的函数才能在动画块中使用 newMargin 参数?
【问题讨论】:
【参考方案1】:这是因为,“常量”的类型是“CGFLoat”,而您传递的是“Int”:
func moveKeyboard (up: Bool, newMargin: CGFloat)
UIView.animateWithDuration(0.2, delay: 0, options: UIViewAnimationOptions.CurveEaseIn, animations:
self.topMarginConstraint.constant = newMargin;
, completion: finished in
println("Animation end!")
)
检查一下,它工作正常。
【讨论】:
以上是关于当使用动画块内函数的参数时,Swift 无法解析 UIView.animateWithDuration 中的 CurveEaseIn的主要内容,如果未能解决你的问题,请参考以下文章
无法使用 animator() [ OSX ] 为 Swift 自定义属性设置动画