IQKeyboardManager 橫屏后 Toolbar 顯示異常

一、問題描述

如下圖,在強制操作橫屏后回歸豎屏,顯示異常, 而且是 iOS 14 才出現(xiàn)的。

顯示異常
二、問題定位
  • 確實是通知成 橫屏的 鍵盤了
IQKeyboardManager
  • 正常時:kbFrame:
(origin = (x = 0, y = 407), size = (width = 375, height = 260))
  • 異常時:kbFrame:
(origin = (x = 0, y = 115), size = (width = 667, height = 260))

說白了就是鍵盤通知中UIKeyboardFrameEndUserInfoKey值, 沒有真正跟隨橫豎屏轉(zhuǎn)換而改變

三、問題解決
  • 那就是在此時切換成橫豎屏的時候,進行設置:
[[UIDevice currentDevice] setValue:@(UIInterfaceOrientationPortrait)
                            forKey:@"orientation"];

PS: 如果代碼中有依賴UIScreen的bounds屬性、UIWindow的bounds屬性、鍵盤通知中UIKeyboardFrameEndUserInfoKey值、[UIApplication sharedApplication].statusBarFrame的地方, 那么切換橫豎屏的時候就需要注意啦。引用自: iOS7到iOS8 一個通用的橫豎屏幕切換總結(jié)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容