我的屏幕中央有一个包含UISearchBar
的UIView。当用户点击UISearchBar
时,我会根据UIKeyboardFrameEndUserInfoKey
成功设置此视图的动画。
问题是这对我来说不够好。
我想做的是保持UIView
直到键盘顶部触及UIView
的底部,然后以与键盘移动相同的速率向上移动UIView。键盘到达UIView
后,基本上将UIView
“固定”到键盘顶部。
我开始认为UIKeyboard
通知发出的信息无法做到这一点。有人尝试过任何类似的东西吗?
谢谢!
答案 0 :(得分:1)
您应该能够使用UIKeyboardWillChangeFrameNotification
中提供的信息来实现此目的。此通知中的信息告诉您键盘的开始和结束帧,动画曲线的类型以及持续时间。
要在动画中的任何给定时间计算键盘的点,您可以使用Jeff LaMarche的this code,或者使用CAMediaTimingFunction
类并插入动画类型(使用名称)并找出键盘在某些时间点的位置。
一旦知道键盘在给定时间点的位置,就可以为UIView
设置动画,以便随键盘一起移动。