我试图将参数传递给函数以动态更改动画块中的布局约束。
这有效:
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参数?
最佳答案
这是因为“常量”的类型为“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!")
})
}
检查一下,它工作正常。