我注意到一个令人惊讶的行为:当我改变的帧UIView
接收后UIKeyboardWillShowNotification
或者UIKeyboardWillHideNotification
,框架的改变动画。似乎此动画使用了与键盘相同的持续时间和缓动曲线。在此项目中,我不使用“自动布局”,而是通过设置框架以编程方式对视图进行布局。
有人可以告诉我这是怎么回事吗?
UIViewController的有趣部分viewDidLoad()
:
NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(keyboardWillShow), name: UIKeyboardWillShowNotification, object: nil)
NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(keyboardWillDisappear), name: UIKeyboardWillHideNotification, object: nil)
someView.frame = CGRect(origin: CGPoint(x: 0, y: view.bounds.height - 10), size: CGSize(width: 10, height: 10))
someView.backgroundColor = UIColor.redColor()
view.addSubview(someView)
回调:
func keyboardWillShow(notification: NSNotification) {
someView.frame.origin = CGPoint(x: 0, y: 0)
}
func keyboardWillDisappear(notification: NSNotification) {
someView.frame.origin = CGPoint(x: 0, y: view.bounds.size.height - someView.bounds.size.height)
}
UIKeyboardDid...
通知的回调中获得动画UIView.commitAnimations()
在设置UIViews Frame之前调用来防止自动动画播放,但这似乎很麻烦。UIKeyboardWill...
通知后,我可以安全地播放自定义动画吗?答案:
didShow
和didHide
通知,因为它们应包含要在提交动画后执行的代码。希望我能帮上忙。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句