objective-c - iOS 7 - 键盘动画

标签 objective-c uitableview animation keyboard ios7

我正在尝试了解 iPhone 5 模拟器上 iOS 7.0 中的新键盘动画。我想在键盘出现时调整 UITableView 的大小,但我无法获得正确的动画细节。
当键盘出现或消失时,我正在使用来自 NSNotification 对象的信息。

这是我的日志:

Move keyboard from {{0, 920}, {320, 216}} to {{0, 352}, {320, 216}}
 with duration: 0.400000
 and animation curve: 7

UIViewAnimationCurveEaseInOut = 0
UIViewAnimationCurveEaseIn = 1
UIViewAnimationCurveEaseOut = 2
UIViewAnimationCurveLinear = 3

动画曲线是未知值,怎么办?

最佳答案

在 iOS 7 中,键盘使用了一种新的、未记录的动画曲线。虽然有些人注意到对动画选项使用未记录的值,但我更喜欢使用以下内容:

[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:[notification.userInfo[UIKeyboardAnimationDurationUserInfoKey] doubleValue]];
[UIView setAnimationCurve:[notification.userInfo[UIKeyboardAnimationCurveUserInfoKey] integerValue]];
[UIView setAnimationBeginsFromCurrentState:YES];

// work

[UIView commitAnimations];

虽然建议使用基于 block 的动画,但从键盘通知返回的动画曲线是 UIViewAnimationCurve,而您需要传递给基于 block 的动画的选项是 UIViewAnimationOptions。使用传统的 UIView 动画方法,您可以将值直接通过管道输入。最重要的是,这将使用新的未记录动画曲线(整数值 7)并使动画与键盘匹配。而且,它同样适用于 iOS 6 和 7。

关于objective-c - iOS 7 - 键盘动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18957476/

相关文章:

ios - MKPolyline 检测自相交线 OBJECTIVE C

ios - 提交查询后如何使搜索按钮起作用?

ios - 应用于 Controller 的背景未应用于 Storyboardswift中的表格 View 单元格

ios - 使用 NSFetchedResultsController 的 UITableView 部分出现意外的标题 View

iphone - 单击时突出显示表格 View 单元格,而不是在释放时突出显示

css - 动画文本淡入其他文本

objective-c - 停止循环

iphone - [__NSDate objCType] : unrecognized selector

ios - 相机捕捉时闪屏变白?

html - Css 动画无限动画线