键盘上方的ios动画栏

时间:2014-03-27 06:49:19

标签: ios animation uiview keyboard

当键盘弹出时,我想为键盘上方的栏设置动画。我想通过首先将我的栏隐藏在屏幕的最底部,以与键盘动画相同的速率向酒吧的高度设置动画,然后让键盘和条形图同时生成动画来实现此目的。酒吧拥抱键盘。

问题在于计时键盘动画的开始。在第一次加载时,键盘需要一些时间,因此条形图首先动画,但在键盘开始动画之前会有轻微的暂停。我希望这种过渡顺利进行。

有没有更简单的方法来考虑这个?

2 个答案:

答案 0 :(得分:1)

您应该使用Apple提供的UIKeyboardNotifications。我会推荐UIKeyboardWillShowNotificationUIKeyboardDidShowNotificationUIKeyboardWillHideNotificationUIKeyboardDidHideNotification

我想如果您已经以某种形式实现了动画,那么您已经在使用部分或全部通知。

你应该使用它,因为在动画过程中拥有正确帧的显而易见的原因是:

NSString *const UIKeyboardFrameBeginUserInfoKey;
NSString *const UIKeyboardFrameEndUserInfoKey;

这两个通知将分别为键盘的开始和结束帧提供CGRect。

这听起来像你想要的是这两个通知:

NSString *const UIKeyboardAnimationDurationUserInfoKey;
NSString *const UIKeyboardAnimationCurveUserInfoKey;

第一个将为您提供动画的持续时间,这显然是您正在寻找的。第二个将为您提供键盘使用的动画曲线,这对于保持与整个动画保持一致也非常有用。

我希望这会对你有所帮助。

答案 1 :(得分:1)

如果要在键盘上方显示视图,当键盘出现并在键盘隐藏时隐藏它,您可以通过设置UITextField或UITextView的inputAccessoryView属性来执行此操作,该属性在键盘出现时显示为键盘的AccessoryView特别是UITextField或UITextView。

在我的例子中,我想要一个UIToolBar当它出现在UITextView上时键盘上有一个完成按钮,所以一旦用户完成内容写入,他/她就可以通过单击该UIToolBarButtonItem来隐藏键盘。代码如下:

[txtViewDescription setInputAccessoryView:toolBarAccesoryView];

在上面的代码中,txtViewDescription是一个UITextView,toolBarAccesoryView是一个UIToolbar,它可以是你想要的任何UIView对象。

enter image description here