前言:
從網(wǎng)上找了很多Demo對于導(dǎo)航欄上的分段選擇非常的少扣草。所以自己,就懷著一顆氨鹏,不知道能否封裝好的心欧募,細(xì)細(xì)的封裝一下。demo地址
目的:
我在外仆抵,留兩個接口跟继,一個是該分段標(biāo)題的標(biāo)題數(shù)組,一個是分段標(biāo)題所對的控制器數(shù)組镣丑。效果要達(dá)到舔糖,點擊每一個標(biāo)題,滾動到響應(yīng)的控制器界面莺匠。滾動響應(yīng)的控制器界面能夠金吗,相應(yīng)的滾動到相應(yīng)標(biāo)題。調(diào)用只要調(diào)用該控制器即可趣竣。
展示效果
效果圖.gif
具體邏輯走向
導(dǎo)航欄上分段選擇的封裝.png
具體步驟如下:
1. 配置基本的應(yīng)用場景摇庙。
1> 嵌入一個導(dǎo)航控制器,配置一個item,實現(xiàn)其點擊事件
2> 重整一個承載分段選擇的容量控制器
3> 點擊實現(xiàn)跳轉(zhuǎn)這個容量控制器
4> show in finder進(jìn)行項目結(jié)構(gòu)的調(diào)整
如下圖所示:
2. 修理改造容量控制器 - 自定義導(dǎo)航欄遥缕。
我們都知道卫袒,要想達(dá)到,導(dǎo)航控制器上產(chǎn)生特殊的效果单匣,有一種方法就是設(shè)置titleView夕凝,還有一種方法就是,當(dāng)需求滿足不了時户秤,我們就必須進(jìn)行自定義導(dǎo)航欄迹冤,否則實現(xiàn)不了。
今天主要講解的就是自定義導(dǎo)航欄虎忌。
1> 把當(dāng)前需要自定義導(dǎo)航欄控制器中的導(dǎo)航欄隱藏
2> 創(chuàng)建一個UIview,高度64,顏色灰色位置(0,0)添加到原導(dǎo)航欄位置
3> 創(chuàng)建一個返回按鈕橱鹏,并設(shè)置背景圖片膜蠢,添加到leftItem位置,添加點擊事件莉兰。
4> 實現(xiàn)點擊事件
注意:導(dǎo)航欄的是否隱藏應(yīng)該在viewWillAppear:(BOOL)animated方法中設(shè)置
1
2
3
3.自定義一個分段選擇的UIView添加到自定義導(dǎo)航欄中
1> 初始化
2> 傳入一個數(shù)組挑围,并根據(jù)其個數(shù)向自定義View上添加button
- 求出每個按鈕的寬度
- 循環(huán)遍歷添加按鈕
- 因為要添加滾動軸,需要把按鈕的高度-2糖荒,留出這個線的位置
- 外部設(shè)置接口杉辙,用來設(shè)置按鈕的樣式,以及標(biāo)題名稱
- 設(shè)置下滑線
- 點擊按鈕設(shè)置傳入tag,設(shè)置下滑線的走向
- 設(shè)置代理捶朵,將選中按鈕的tag值傳出去蜘矢,做事情
- 整理代碼
具體封裝整理如下
1
2
3
4.創(chuàng)造滑動視圖與按鈕進(jìn)行聯(lián)動
1> 添加滾動視圖
2> 在按鈕的代理方法里狂男,滾動視圖與按鈕的聯(lián)動
3> 設(shè)置滾動的時候,改變標(biāo)題按鈕的tag值
4> 準(zhǔn)備接口品腹,最后部署
具體封裝整理如下
1
2
3
4
5
6
具體用法
這是第一次封裝的那么細(xì)岖食,雖然好長時間沒找到工作了,但是也要不斷的學(xué)習(xí)舞吭,即使iOS幾乎飽和了泡垃,但要對得起自己!這一次羡鸥,最大的收獲蔑穴,讓我學(xué)會了用一個控制器管理多個控制器****互相交流~