2016-01-23 64 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之間進行的任何視圖的所有更改都將作爲該鍵盤動畫的一部分進行動畫。

相關問題