我在製作一個消息應用程序。當顯示鍵盤時,我想讓UITextField與它一起向上移動,就像在Messages應用程序中一樣。但是,我的動畫調用不起作用。它沒有動畫textInputView,因爲它應該,但後,仍然調用完成塊:UIView.animateWithDuration不起作用
func keyboardWasShown(aNotification: NSNotification)
{
var info = aNotification.userInfo! as Dictionary<NSObject,AnyObject>
var kbSize = info[UIKeyboardFrameEndUserInfoKey]?.CGRectValue().size
UIView.animateWithDuration(0.2, animations: {() -> Void in
self.textInputView.frame.origin.y = self.view.frame.height - self.textInputView.frame.height - kbSize!.height
println("Should move textInputView to: \(self.textInputView.frame.origin.y)")
}) { (bool) -> Void in
println("Location of textInputView.frame.origin.y after animation: \(self.textInputView.frame.origin.y)")
}
}
當我運行這段代碼,它打印:
應該移動到textInputView.frame.origin.y:297.0
動畫後textInputView.frame.origin.y的地點:521.0
爲什麼沒有動畫?
它在做什麼?住在同一個地方?移動沒有動畫? – jrturton
你爲什麼試圖改變'完成'封閉的框架? – akashivskyy
@akashivskyy是正確的,但如果您使用自動佈局,對幀的更改可能根本無法工作。 – Linuxios