一、問(wèn)題描述
如下圖丐箩,在強(qiáng)制操作橫屏后回歸豎屏寸宵,顯示異常患久, 而且是 iOS 14 才出現(xiàn)的。
顯示異常
二示启、問(wèn)題定位
- 確實(shí)是通知成 橫屏的 鍵盤(pán)了
IQKeyboardManager
- 正常時(shí):kbFrame:
(origin = (x = 0, y = 407), size = (width = 375, height = 260))
- 異常時(shí):kbFrame:
(origin = (x = 0, y = 115), size = (width = 667, height = 260))
說(shuō)白了就是鍵盤(pán)通知中UIKeyboardFrameEndUserInfoKey值兢哭, 沒(méi)有真正跟隨橫豎屏轉(zhuǎn)換而改變
三、問(wèn)題解決
- 那就是在此時(shí)切換成橫豎屏的時(shí)候夫嗓,進(jìn)行設(shè)置:
[[UIDevice currentDevice] setValue:@(UIInterfaceOrientationPortrait)
forKey:@"orientation"];
PS: 如果代碼中有依賴UIScreen的bounds屬性迟螺、UIWindow的bounds屬性、鍵盤(pán)通知中UIKeyboardFrameEndUserInfoKey值舍咖、[UIApplication sharedApplication].statusBarFrame的地方, 那么切換橫豎屏的時(shí)候就需要注意啦矩父。引用自: iOS7到iOS8 一個(gè)通用的橫豎屏幕切換總結(jié)