在管理键盘中文档 http://developer.apple.com/iphone/library/documentation/StringsTextFonts/Conceptual/TextAndWebiPhoneOS/KeyboardManagement/KeyboardManagement.html:
UIKeyboardFrameBeginUserInfoKey这
NSValue 对象的 key 包含
CGRect 标识起始帧屏幕坐标中的键盘。
这些坐标不考虑
考虑所应用的任何旋转因子
结果是窗口的内容
界面方向变化。
因此,您可能需要将
矩形到窗口坐标(使用
ConvertRect:fromWindow: 方法)或
查看坐标(使用
转换矩形:fromView:方法)之前
使用它。
UIKeyboardFrameEndUserInfoKey钥匙
对于包含以下内容的 NSValue 对象
CGRect 标识结束框架屏幕坐标中的键盘。
这些坐标不考虑
考虑所应用的任何旋转因子
结果是窗口的内容
界面方向变化。
因此,您可能需要将
矩形到窗口坐标(使用
ConvertRect:fromWindow: 方法)或
查看坐标(使用
转换矩形:fromView:方法)之前
使用它。
是什么意思start frame
and end frame
?它们之间有什么区别?
开始帧是键盘在动画开始处的位置:如果显示键盘则在屏幕外,如果隐藏键盘则在屏幕上。结束帧是动画结束时键盘所在的位置:反之亦然。您可以利用它们之间的差异编写一个方法来响应隐藏和显示键盘。
也请务必使用UIKeyboardAnimationCurveUserInfoKey
and UIKeyboardAnimationDurationUserInfoKey
当您的视图更改动画时:这样,您的动画和操作系统的动画将同步。
另一个提示:您链接到的文档指出,“userInfo 字典的 UIKeyboardFrameBeginUserInfoKey 和 UIKeyboardFrameEndUserInfoKey 属性中包含的矩形应仅用于其包含的大小信息。不要使用矩形的原点(始终为 {0.0, 0.0})在矩形相交运算中”。至少在 OS 3.2 的 iPad 上,情况并非如此。两个矩形具有相同的大小,而屏幕坐标中的原点在两者之间不同。
您可能会发现这个问题很有帮助:UIKeyboardBoundsUserInfoKey 已弃用,该使用什么替代? https://stackoverflow.com/questions/2807339/uikeyboardboundsuserinfokey-is-deprecated-what-to-use-instead
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)