iOS導航欄那些事(LargeTitles)

在我手機裏,【AppStore】這款軟件打開的頻率雖然不是最高的,但是它是我認爲做的最好的。它的亮眼之處在我看來有兩點,一是首頁的轉場動畫,我之前的文章裏面已有所涉及,其二就是導航欄的動畫。

現在衆多的app裏,爲了省事,基本都是自定義導航,側滑的時候,總感覺少了點味道。
而且蘋果在iOS11上增加了大標題模式,現在在第三方app裏,根本見不到其在裏面的應用。

所以就有了這個導航欄框架,這是在HXNavigationController基礎上進行修改的,拓展了大標題,導航Search,Segment,導航頭像等功能。並且可以隨意點切換喲。

其中有幾個注意點:

注意點1:在實踐過程中,發現在大標題模式下,用常規的第三方刷新控件會有UI方面的bug,所以在demo裏面自己封裝了一下系統的UIRefreshControl。在用系統的UIRefreshControl的過程中,發現只用self.addSubview(refreshControl)或者self.refreshControl = refreshControl,如果沒有區分小/大標題時,會有問題產生,所以做了下兼容。

if inVC.hx_navEnableLargeTitle == true {
    self.refreshControl = refreshControl
    self.refreshCtrol = refreshControl
  }else {
    self.addSubview(refreshControl)
    self.refreshCtrol = refreshControl
}

注意點2:UISegmentedControl其實是添加在UISearchController上面的,所以一定要實現它的代理並在代理searchBarShouldBeginEditing方法裏面返回false,防止點擊UISegment時出現鍵盤。

注意點3:在各個模式切換時,【小標題】返回到【小標題+搜索模式】最爲特殊,不得已做了相應的判斷處理,大家可以在ViewController裏面着重看一下self.isLargeTitle == false && self.isShowSearch這兩個判斷條件就可以了。

歡迎大家點贊或評論

demo

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章