在这里尝试使用模拟器,并且看起来在监听UIKeyboardWillChangeFrame
的更改时返回的帧对于iPhone X来说是不正确的。具体来说,框架似乎比屏幕上的(实际上)更高一些。我会说返回的帧高约20点。
我忘记了一些明显的事吗?
一些数据......
iPhone X和iPhone 8在纵向上具有相同的宽度,这使其在景观中具有相同的高度; 375分。 (https://www.paintcodeapp.com/news/ultimate-guide-to-iphone-resolutions)
// iPhone X values:
// keyboardChange, frame: (0.0, 375.0, 812.0, 171.0)
// keyboardChange, frame: (0.0, 204.0, 812.0, 171.0)
// iPhone 8 values:
// keyboardChange, frame: (0.0, 375.0, 667.0, 162.0) (keyboard closed)
// keyboardChange, frame: (0.0, 213.0, 667.0, 162.0) (keyboard opened)
我们可以看到在iPhone X上打开键盘时的Y值较小,这导致我们在屏幕上对齐任何我们自己的UI元素。即它们不会在键盘顶部完美对齐。这是我当前的问题,我认为所有其他应用程序也会遇到这个问题。
答案 0 :(得分:1)
我的问题没有足够的信息可以直接攻击问题,我现在看到了。正如我在上面的评论中所写,问题本身并不是iPhone X的问题,但如果你想使用随UIKeyboardWillChangeFrame
通知提供的框架在键盘顶部放置一个UI元素,你必须确保限制在超级视图的最底层,而不是安全区域底部,这在我的故事板中发生,因为我添加了安全区域支持。