我正在嘗試動畫,而且我正面臨一個大問題:當我的動畫完成並且執行某些操作(觸摸屏幕等)時,元素將其位置重置爲他們的第一位。 我發現這個:[博客]:Animation Blocks resets to original position after updating text 他們說這是因爲元素有約束或自動佈局,所以關掉它來修復它,但我不想關閉它。 我們可以通過編程更新約束嗎? 還有其他解決方案嗎?動畫:停止元素的重置位置(快速)
這裏是我的動畫:
@IBOutlet var tfUser: UITextfiled!
override func viewDidLoad() {
super.viewDidLoad()
}
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
tfUser.center.x += view.bounds.width
}
override func viewDidAppear(animated: Bool) {
super.viewDidAppear(animated)
UIView.animateWithDuration(2, delay: 1.8, options: [.CurveEaseInOut], animations: {
self.tfUser.center.x += self.view.bounds.width
//self.tfUser.frame = CGRectMake(0, 233, 375 , 89)
// i tried CGRectMake but it delete the animation
}, completion: nil)
}
使用UIView的translatesAutoresizingMaskIntoConstraints屬性。像這樣'self.tfUser.translatesAutoresizingMaskIntoConstraints = false;' –
非常感謝你,它的工作! – Matt