首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >TextField不像Whatsapp和Hangout那样被键盘顺利地推上。

TextField不像Whatsapp和Hangout那样被键盘顺利地推上。
EN

Stack Overflow用户
提问于 2014-04-30 09:02:52
回答 2查看 1.4K关注 0票数 1

我试图在Whatsapp应用程序中模仿UITextField-keyboard关系。正如大多数人所知道的,屏幕底部有一个固定的UITextField,当您点击UITextField时键盘就会出现。当键盘出现时,UITextField坚持键盘,他们一起滑行非常顺利。

阅读苹果的文档页面,这是关于在键盘下移动视图的几次。

到目前为止我尝试过的:

  • 听键盘通知。我在动画块中同时使用了setFrame:setContentOffset:animated:方法。效果不像预期的那么好。键盘动画的UIViewAnimationCurve值是7,我找不到它的含义,因为UIViewAnimationCurve只有4个整数枚举类型。我认为键盘动画的动画曲线没有提供给开发者,我希望我错了。
  • 使用z索引值较低的自定义inputAccessoryView 。我有两个确切的UIViews,一个是在底部固定的,另一个是自定义的inputAccessoryView,它将隐藏在固定的一个下面,因为它的zPosition值较低。因此,用户不会看到inputAccessoryView是从屏幕外出现的,但是固定视图被键盘推高了。但又没用了。更改zPosition值不会改变任何事情。

最后,我想Whatsapp可能不是使用系统键盘,而是使用自定义键盘。但是如果是这样的话,这是一个非常糟糕的设计选择,所以这个选项被删除了。

有人知道Whatsapp (或Hangout)是如何实现这一点的吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-04-30 12:15:22

最直截了当的做法是正确的方法。

keyboardWillShow/keyboardWillHide通知和animateWithDuration:被触发时,我应该听它们。我错过的重点是通过转换( UIViewAnimationCurve )将UIViewAnimationOptionCurve转换成UIViewAnimationOptionCurve (<<16)。

代码语言:javascript
运行
复制
NSDictionary *notification = [aNotification userInfo];
UIViewAnimationOptions curveValue = [[info objectForKey:UIKeyboardAnimationCurveUserInfoKey] unsignedIntegerValue] << 16;
...
[UIView animateWithDuration:{animation duration}
                      delay:0
                    options:curveValue
                 animations:^{
                     //animation code
                 }
                 completion:nil];
票数 2
EN

Stack Overflow用户

发布于 2014-05-05 13:21:29

值'7‘不是2的幂,所以它不是一个特定的动画值,而是多个动画值的和(或位)。解决办法(为我工作)是:

代码语言:javascript
运行
复制
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:[info[UIKeyboardAnimationDurationUserInfoKey] floatValue]];
[UIView setAnimationCurve:[userInfo[UIKeyboardAnimationCurveUserInfoKey] intValue]];
// set view frame here
[UIView commitAnimations];

祝你好运:)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23383916

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档