CustomNavigationBar自定義的導航條
一種自定義的導航條
之所以自定義導航條,原因有兩個:
1、做同時兼容iOS6與iOS7的導航條時,使用原生導航條總是不順手。于是想自定義一個,這樣兼容iOS6與iOS7時,代碼相對統(tǒng)一。另外,因為是自定義的,要做一些特殊的效果時比較容易控制(比如:導航條分成兩行,段選擇器合并到導航條內(nèi))。
2、一個個人原因,3.5寸屏幕的iOS7右滑返回時,導航條不動只是內(nèi)容頁面移動,感覺比較壓抑。所以,希望兼顧原生的右滑返回,又可以使導航條在滑動時跟著移動。
------ 介紹 ------
1、CustomNaviBarView:自定義的導航條,繼承自UIView。
- 將導航條分成左中右三個區(qū)域。默認在左區(qū)添加一個返回按鈕。 - 提供創(chuàng)建導航條按鈕的方法,可在外部自定義按鈕添加到導航條上。 - 提供外部覆蓋視圖的方法,可在外部自定義一個視圖,覆蓋到導航條上。例如:CustomNaviBarSearchController
2、CustomNaviBarSearchController:搜索關鍵字輸入框,可對接覆蓋到CustomNaviBarView上。
- 提供兩種導航條上的關鍵字輸入框 - 由按鈕觸發(fā),點擊按鈕后顯示輸入框,結(jié)束后銷毀輸入框現(xiàn)實按鈕。 - 導航條一直顯示輸入框。 - 提供最近輸入的關鍵字列表。
3、CustomNavigationController:繼承自UINavigationController。
- 把系統(tǒng)導航條隱藏,以便顯示自定義的導航條。 - 若想使用自定義導航條,導航控制器需繼承自此類。
4、CustomViewController:繼承自UIViewController。
- 封裝了接入自定義導航條的方法,把具體業(yè)務與自定義導航條分開。 - 所有需使用自定義導航條的視圖控制器可直接繼承此類。
------ 用法 ------
以Demo為例:
1、AppNavigationController繼承自CustomNavigationController。
2、所有視圖控制器繼承自CustomViewController。
3、一些公共定義被放在GlobalDefine.h中全局引用。
4、修改標題、設置自定義按鈕。
[self setNaviBarTitle:@"Title"]; // 設置標題 [self setNaviBarLeftBtn:nil]; // 若不需要默認的返回按鈕,直接賦nil // 創(chuàng)建一個自定義的按鈕,并添加到導航條右側(cè)。 _btnNaviRight = [CustomNaviBarView createNormalNaviBarBtnByTitle:@"Next" target:self action:@selector(btnNext:)]; [self setNaviBarRightBtn:_btnNaviRight];
5、覆蓋輸入框
- 創(chuàng)建 CustomNaviBarView 對象。 - 當按鈕觸發(fā)時,通過 showTempSearchCtrl 方法顯示輸入框。 - 當輸入框需固定在導航條時,通過 showFixationSearchCtrl 方法現(xiàn)實輸入框。 - 通過 setRecentKeyword 方法寫入最近使用的關鍵字數(shù)組。
評論
圖片
表情
