2016-01-23 33 views
0

我在UIViewController中有这个代码,它可以在键盘打开时改变视图的高度。为什么视图会自动生成动画?

override func viewWillAppear(animated: Bool) { 
    super.viewWillAppear(animated) 

    // Subscribe to keyboard events. 
    NSNotificationCenter.defaultCenter().addObserver(self, selector: "keyboardWillShow:", name: UIKeyboardWillShowNotification, object: nil) 
} 

func keyboardWillShow(notification: NSNotification) { 
    let keyboardHeight = notification.userInfo![UIKeyboardFrameEndUserInfoKey]!.CGRectValue.height 

    // UIView.animateWithDuration(0.5) { 
     self.view.frame.size.height -= keyboardHeight 
     self.view.layoutIfNeeded() 
    // } 
} 

我注意到,即使没有UIView.animateWithDuration,视图动画也是如此。这是为什么?

回答

1

该通知作为动画块的一部分发出。如果您从与动画相关的通知中提取信息,则可以让其他视图与其一起动画。在你的情况下,你在keyboardWillShowkeyboardDidShow之间进行的任何视图的所有更改都将作为该键盘动画的一部分进行动画。

相关问题