【问题标题】:UIKeyboardFrameBeginUserInfoKey & UIKeyboardFrameEndUserInfoKeyUIKeyboardFrameBeginUserInfoKey & UIKeyboardFrameEndUserInfoKey
【发布时间】:2011-03-20 22:17:44
【问题描述】:

在管理键盘documentation

UIKeyboardFrameBeginUserInfoKey 包含一个 NSValue 对象的键 标识起始帧的CGRect 在屏幕坐标中的键盘。 这些坐标不考虑 考虑应用的任何旋转因子 结果到窗口的内容 界面方向的变化。 因此,您可能需要将 矩形到窗口坐标(使用 convertRect:fromWindow: 方法)或 查看坐标(使用 convertRect:fromView: 方法)之前 使用它。

UIKeyboardFrameEndUserInfoKey 关键 对于包含一个 NSValue 对象 标识结束帧的CGRect 在屏幕坐标中的键盘。 这些坐标不考虑 考虑应用的任何旋转因子 结果到窗口的内容 界面方向的变化。 因此,您可能需要将 矩形到窗口坐标(使用 convertRect:fromWindow: 方法)或 查看坐标(使用 convertRect:fromView: 方法)之前 使用它。

start frameend frame是什么意思?它们有什么区别?

【问题讨论】:

  • 大声笑,即使使用 IOS7,Apple 也未能记录这一点 - 现在在 Apple 在线文档中,两个键具有相同的文档注释,只有单词 start/end 不同,Doh!跨度>

标签: ios iphone keyboard


【解决方案1】:

开始帧是键盘在动画开始的位置:如果键盘正在显示,则在屏幕外,如果键盘正在隐藏,则在屏幕上。结束帧是动画结束时键盘所在的位置:反之亦然。您可以利用它们之间的差异编写一个方法来响应隐藏和显示键盘。

在为您的视图更改设置动画时,请务必使用UIKeyboardAnimationCurveUserInfoKeyUIKeyboardAnimationDurationUserInfoKey:这样,您的动画和操作系统的动画将同步。

另一个提示:您链接到的文档指出,“userInfo 字典的 UIKeyboardFrameBeginUserInfoKey 和 UIKeyboardFrameEndUserInfoKey 属性中包含的矩形应仅用于其包含的大小信息。不要使用矩形的原点(始终{0.0, 0.0}) 在矩形相交运算中”。至少在 OS 3.2 上的 iPad 上,这是不正确的。两个矩形的大小相同,而屏幕坐标中的原点在两者之间不同。

您可能会发现这个问题很有帮助:UIKeyboardBoundsUserInfoKey is deprecated, what to use instead?

【讨论】:

  • 感谢关于 UIKeyboardAnimationCurveUserInfoKey 和 UIKeyboardAnimationDurationUserInfoKey 的精彩提示!
  • 不客气。如果您碰巧在 tableview 中处理 textviews,请告诉我您的想法。
猜你喜欢
  • 1970-01-01
  • 2011-12-25
  • 2013-11-26
  • 2013-03-02
  • 1970-01-01
  • 2012-01-22
  • 2012-01-22
相关资源
最近更新 更多