pot*_*ato 1 uiviewanimation ios swift
按下时,我正在设置按钮以移动一段距离.在它移动那个距离之后,它应该改变它的标题并保持在那个位置.但是,当动画结束时,它会跳回到起点并更改其标题.当相同的代码运行而没有按钮改变它的标题时,它工作正常.所以看来
self.button.setTitle("hehehe", forState: UIControlState.Normal)
Run Code Online (Sandbox Code Playgroud)
造成了这个问题.这是代码:
//when button pressed
UIView.animateWithDuration(1, delay: 0, options: .CurveLinear, animations: {
self.button.center.y -= 50
}) { _ in
self.button.setTitle("hehehe", forState: UIControlState.Normal)
}
Run Code Online (Sandbox Code Playgroud)
您可能希望使用约束来执行动画.首先,设置一个尾随(例如,取决于你希望如何设置动画),如下所示:

我把我的命名命名为myConstraint:

一旦你有了这两个IBOutlets:
@IBOutlet weak var myButton: UIButton!
@IBOutlet weak var myConstraint: NSLayoutConstraint!
Run Code Online (Sandbox Code Playgroud)
您可以执行动画并更改文本(我将此代码放在按钮操作中):
// Animate
UIView.animateWithDuration(1, delay: 0, options: .CurveLinear, animations: {
self.myConstraint.constant = // the new "length" of the constraint, just test different numbers to understand it
self.view.setNeedsLayout()
self.view.layoutIfNeeded()
}) { _ in
self.myButton.setTitle("hehehe", forState: UIControlState.Normal)
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
232 次 |
| 最近记录: |