Ios 正在进行的动画在移动到另一个视图控制器时导致延迟
好的,我有一个Ios 正在进行的动画在移动到另一个视图控制器时导致延迟,ios,animation,swift2,Ios,Animation,Swift2,好的,我有一个按钮,它随键盘一起出现和隐藏(当键盘出现时,它也会出现,当我关闭键盘时,它也会随键盘一起消失) 因此,当我按下此按钮打开另一个视图控制器时,转换不会立即开始,会有少量延迟(这不好) 我的按钮动画: func keyboardWillShow(notification:NSNotification) { let userInfo:NSDictionary = notification.userInfo! let duration: Double = (noti
按钮
,它随键盘一起出现和隐藏(当键盘出现时,它也会出现,当我关闭键盘时,它也会随键盘一起消失)
因此,当我按下此按钮打开另一个视图控制器时,转换不会立即开始,会有少量延迟(这不好)
我的按钮动画:
func keyboardWillShow(notification:NSNotification) {
let userInfo:NSDictionary = notification.userInfo!
let duration: Double = (notification.userInfo![UIKeyboardAnimationDurationUserInfoKey] as! Double)
let keyboardFrame:NSValue = userInfo.valueForKey(UIKeyboardFrameEndUserInfoKey) as! NSValue
let keyboardRectangle = keyboardFrame.CGRectValue()
self.nextButtonConstraint.constant = keyboardRectangle.height
UIView.animateWithDuration(duration) {
self.nextButton.layoutIfNeeded()
}
}
func keyboardWillHide(notification:NSNotification) {
let duration: Double = (notification.userInfo![UIKeyboardAnimationDurationUserInfoKey] as! Double)
self.nextButtonConstraint.constant = -50
UIView.animateWithDuration(duration) {
self.nextButton.layoutIfNeeded()
}
}
我尝试在按下按钮时禁用动画,但不起作用:
@IBAction func nextButtonAction(sender: AnyObject) {
UIView.setAnimationsEnabled(false)
performSegueWithIdentifier("nextToPasswordSegue", sender: self)
UIView.setAnimationsEnabled(true)
}
根据他的回答:
显然,在同一时间有一个动画正在引发问题。
有什么线索可以帮我解决吗 我遇到了同样的问题,在尝试移动到下一个控制器时遇到了延迟。对我来说,修复它的方法是在执行segue之前隐藏键盘(辞职FirstResponder)。然后,您需要在主队列上运行perform segue行,以确保它立即启动。下面是一个例子:
textField.resignFirstResponder()
dispatch_async(dispatch_get_main_queue()) {
performSegueWithIdentifier("nextToPasswordSegue", sender: self)
}
我遇到了同样的问题,在尝试移动到下一个控制器时遇到了延迟。对我来说,修复它的方法是在执行segue之前隐藏键盘(辞职FirstResponder)。然后,您需要在主队列上运行perform segue行,以确保它立即启动。下面是一个例子:
textField.resignFirstResponder()
dispatch_async(dispatch_get_main_queue()) {
performSegueWithIdentifier("nextToPasswordSegue", sender: self)
}