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 动画的主要内容,如果未能解决你的问题,请参考以下文章
在 iOS 7 中使用 UIScrollView 在 iOS 中创建水平滚动 UIButton
如何通过 IOS 7 中的文本自动调整 UIButton 的大小?