一、问题描述
如下图,在强制操作横屏后回归竖屏,显示异常, 而且是 iOS 14 才出现的。
显示异常二、问题定位
- 确实是通知成 横屏的 键盘了
- 正常时:kbFrame:
(origin = (x = 0, y = 407), size = (width = 375, height = 260))
- 异常时:kbFrame:
(origin = (x = 0, y = 115), size = (width = 667, height = 260))
说白了就是键盘通知中UIKeyboardFrameEndUserInfoKey值, 没有真正跟随横竖屏转换而改变
三、问题解决
- 那就是在此时切换成横竖屏的时候,进行设置:
[[UIDevice currentDevice] setValue:@(UIInterfaceOrientationPortrait)
forKey:@"orientation"];
PS: 如果代码中有依赖UIScreen的bounds属性、UIWindow的bounds属性、键盘通知中UIKeyboardFrameEndUserInfoKey值、[UIApplication sharedApplication].statusBarFrame的地方, 那么切换横竖屏的时候就需要注意啦。引用自: iOS7到iOS8 一个通用的横竖屏幕切换总结
网友评论