IQKeyboardManager導(dǎo)航欄上移

使用IQKeyboardManager來處理項目中的文本框被遮擋的問題是一個很好的選擇, 但是也因為這個三方框架自動做了太多的事情有時候會導(dǎo)致一些很奇怪的問題。最常見的就是當控制器帶有導(dǎo)航欄的時候會導(dǎo)致導(dǎo)航欄上移。官方Demo中也有提供一些解決方法。最近在實現(xiàn)一個表單提交頁的時候,在UITableViewCell中有UITextField,在使用IQKeyboardManager的過程中也發(fā)現(xiàn)導(dǎo)航欄有上移的情況。但是我看Demo中并不會出現(xiàn)這樣的情況。后來發(fā)現(xiàn),在布局UITableView的時候,是直接設(shè)置的frame為self.view.bounds,看起來并沒有什么大問題,但是這樣IQKeyboardManager在處理的時候會讓整個View的frame都上移,導(dǎo)航欄也就跟著偏移了。正確的做法是讓UITableView的frame從導(dǎo)航欄下面開始布局。像這樣

- (void)viewDidLayoutSubviews
{
    [super viewDidLayoutSubviews];
    [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) {
        make.top.mas_equalTo(kTopHeight);
        make.bottom.left.right.mas_equalTo(0);
    }];
}

這樣,導(dǎo)航欄就不會被頂出屏幕了。

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

相關(guān)閱讀更多精彩內(nèi)容

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