显示键盘时以相同的速率移动UIView

时间:2013-04-18 22:10:24

标签: iphone ios uikeyboard

我的屏幕中央有一个包含UISearchBar的UIView。当用户点击UISearchBar时,我会根据UIKeyboardFrameEndUserInfoKey成功设置此视图的动画。

问题是这对我来说不够好。

我想做的是保持UIView直到键盘顶部触及UIView的底部,然后以与键盘移动相同的速率向上移动UIView。键盘到达UIView后,基本上将UIView“固定”到键盘顶部。

我开始认为UIKeyboard通知发出的信息无法做到这一点。有人尝试过任何类似的东西吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

您应该能够使用UIKeyboardWillChangeFrameNotification中提供的信息来实现此目的。此通知中的信息告诉您键盘的开始和结束帧,动画曲线的类型以及持续时间。

要在动画中的任何给定时间计算键盘的点,您可以使用Jeff LaMarche的this code,或者使用CAMediaTimingFunction类并插入动画类型(使用名称)并找出键盘在某些时间点的位置。

一旦知道键盘在给定时间点的位置,就可以为UIView设置动画,以便随键盘一起移动。