【发布时间】:2014-04-30 09:02:52
【问题描述】:
我正在尝试模仿 Whatsapp 应用中的 UITextField-keyboard 关系。
众所周知,屏幕底部有一个固定的UITextField,当您点击UITextField 时,键盘会出现。当键盘出现时,UITextField 粘在键盘上,它们一起滑动非常顺畅。
阅读 Apple 的文档页面,其中有关在键盘下多次移动视图。
到目前为止我所尝试的:
收听键盘通知。我在动画块中同时使用了
setFrame:和setContentOffset:animated:方法。没有像预期的那样工作。键盘动画的UIViewAnimationCurve值是7,我找不到它的含义,因为UIViewAnimationCurve只有4 个整数枚举类型。我认为键盘动画的动画曲线没有提供给开发者,希望我错了。使用具有较低 z-index 值的自定义 inputAccessoryView。我有两个确切的
UIViews,一个固定在底部,另一个是自定义的inputAccessoryView,因为它具有较低的zPosition值,所以它会隐藏在固定的zPosition之下。因此,用户不会看到inputAccessoryView从屏幕外出现,但固定视图被键盘向上推。但没有用,再一次。更改zPosition值不会改变任何内容。
最后,我认为 Whatsapp 可能没有使用系统键盘,而是使用自定义键盘。但如果是这样的话,这是一个非常非常糟糕的设计选择,因此该选项被消除了。
有人知道 Whatsapp(或环聊)是如何实现的吗?
【问题讨论】:
标签: ios uiscrollview uitextfield iphone-softkeyboard