UIButton iOS 7 跟随 UIKeyboard 动画

Posted

技术标签:

【中文标题】UIButton iOS 7 跟随 UIKeyboard 动画【英文标题】:UIButton iOS 7 following UIKeyboard animation 【发布时间】:2013-09-23 21:07:00 【问题描述】:

当键盘成为/退出第一响应者时,我想为 UIView 底部的 UIButton 设置动画。在 ios 7 之前,我制作了一个简单的移动按钮的动画,但现在键盘的动画是非线性的,它开始更快,结束更慢。我被告知要使用新的 UIKit Dynamics 来实现,但不知道如何实现我的目标。有什么建议吗?

提前致谢。

【问题讨论】:

【参考方案1】:

收听键盘通知。在那里您可以获得以下信息并相应地为您的按钮设置动画。

UIKeyboardAnimationCurveUserInfoKey 包含 UIViewAnimationCurve 常量的 NSNumber 对象的键,该常量定义了 键盘将在屏幕上或屏幕上显示动画。

适用于 iOS 3.0 及更高版本。

在 UIWindow.h 中声明。

UIKeyboardAnimationDurationUserInfoKey NSNumber 对象的键,其中包含一个 double 标识 以秒为单位的动画。

适用于 iOS 3.0 及更高版本。

在 UIWindow.h 中声明。

更多信息在这里: https://developer.apple.com/library/ios/documentation/uikit/reference/UIWindow_Class/UIWindowClassReference/UIWindowClassReference.html#//apple_ref/doc/constant_group/Keyboard_Notification_User_Info_Keys

【讨论】:

谢谢!像魅力一样工作!【参考方案2】:

possible duplicate, another possible duplicate

@Leo:我尝试过使用这些值,但它们对我(以及我见过的其他人)不起作用,所以我最终得到了这个:

[UIView animateWithDuration:0.5
                      delay:0
     usingSpringWithDamping:500.0f
      initialSpringVelocity:0.0f
                    options:UIViewAnimationOptionCurveLinear
                 animations:animBlock
                 completion:completionBlock];

【讨论】:

硬编码值并不总是准确的,并且在 Apple 更改动画时往往会在版本之间中断。

以上是关于UIButton iOS 7 跟随 UIKeyboard 动画的主要内容,如果未能解决你的问题,请参考以下文章

UIButton 在 iOS 7 中无法正常工作

在 iOS 7 中使用 UIScrollView 在 iOS 中创建水平滚动 UIButton

如何通过 IOS 7 中的文本自动调整 UIButton 的大小?

如何在 iOS 7 下对 UIButton 产生涟漪效果? [复制]

iOS 7 UIButton 的画外音问题

以编程方式更改UIButton的标题颜色,其标题设置为iOS 7中的属性