隱藏導航欄返回按鈕以及鍵盤引發的UI問題

隱藏返回按鈕

當是某個界面被push進來的時候,其導航欄左側會自動顯示返回按鈕。

備注:項目中對于pop手勢的擴展使用的是FDFullscreenPopGesture分類。

一般會想到如下三種解決辦法

方法一

self.navigationItem.leftBarButtonItem = nil;

但是方法一并不能隱藏返回按鈕。

方法二

 self.navigationItem.hidesBackButton = YES;

能隱藏但是存在問題:當你進行pop手勢但又不退出界面時,被我們隱藏的返回按鈕會重新顯示出來,而且顯示不完全。


Snip20170810_10.png

顯示三個點的控件信息如下,其實就是返回按鈕:

Snip20170810_11.png

方法三

self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:[[UIView alloc] initWithFrame:CGRectZero]];

這是最好的解決方法,即用一個視圖創建leftBarButtonItem,可以是一個frame為CGRectZero或者自定義樣式的視圖。

關于界面消失鍵盤的回收問題

如果某個界面通過監聽鍵盤的顯示和隱藏來控制UISCrollView的frame,當你通過pop手勢又不完全退出界面時(并沒有回收鍵盤),可能會引發UI上面的bug。也就是整個UISCrollView像右偏移而且其寬度會突變,就像這樣的:


IMG_0538.PNG
IMG_0539.PNG

在這個過程中打印UISCrollView的frame如下:

Snip20170810_12.png

不過我自己單獨測試似乎沒有遇到上面的問題,只是大家可以注意下這個點,即進行pop手勢時是否需要回收鍵盤。

Stay hungry,Stay foolish!

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 發現 關注 消息 iOS 第三方庫、插件、知名博客總結 作者大灰狼的小綿羊哥哥關注 2017.06.26 09:4...
    肇東周閱讀 12,229評論 4 61
  • 國慶期間,大女兒受同學之托,幫忙給養一段時間小貓。二女兒很喜歡貓,雖然我反對,但是貓還是如約到了我家,貓糧和沙石也...
    巔峰之旅閱讀 153評論 0 0
  • 原型繼承 借用構造函數 組合繼承 原型式繼承 寄生式繼承 寄生組合繼承 優點: 因為組合繼承最大的問題是無論什么...
    黃小猛閱讀 209評論 0 0
  • 11111@
    hahaqwer閱讀 435評論 0 50
  • 我們是在云霧中行駛,從一片陰雨天駛過又進入一片陰雨天。雨下的很大,也很快,砸在臉上讓人有一種相信自己活著的感覺。 ...
    大皖安利閱讀 157評論 0 0