Demo效果展示:
效果展示
詳解:
一结窘、環(huán)境的配置,搭建項(xiàng)目
-
解析:對于這個(gè)項(xiàng)目失乾,首先我們要?jiǎng)?chuàng)建一個(gè)顯示主界面的控制器,對其嵌入一個(gè)導(dǎo)航Nav谋币,在將Nav作為窗口的根視圖控制器仗扬。
1.初始化
項(xiàng)目初始化
2.設(shè)置背景顏色以及自適應(yīng)
設(shè)置背景顏色以及自適應(yīng)
二、設(shè)置分段界面
-
解析:其實(shí)就是自定義一個(gè)分段顯示的View蕾额。在自定義這個(gè)分段view是我們首先,要考慮我們這個(gè)分段View要聲明所需的屬性(上面button文字標(biāo)題是什莫彼城,顏色是什莫诅蝶,字號(hào)多大),并創(chuàng)建一個(gè)數(shù)組進(jìn)行上面button的容量器募壕。然后调炬,初始化進(jìn)行。
1.1自定義與初始化
自定義與初始化
1.2添加到顯示界面
添加到顯示界面 - 解析:
- 創(chuàng)建一個(gè)方法舱馅,目的是缰泡,控制器傳入一個(gè)數(shù)組,并根據(jù)數(shù)組中的個(gè)數(shù)向自定義View上添加頻道的數(shù)目,又知道頻道的數(shù)量代嗤,有根據(jù)頻道的標(biāo)題數(shù)量而定棘钞,所以控制器傳入的數(shù)組是包含控制器標(biāo)題的數(shù)組。
-
方法內(nèi):循環(huán)遍歷干毅,添加頻道->設(shè)置下劃線->創(chuàng)建一個(gè)數(shù)組盛放所有頻道->默認(rèn)選中第一個(gè)頻道
2.1聲明方法
聲明方法宜猜,目的如圖所示
2.2.1更正
更正
2.2.2增加頻道-方法的實(shí)現(xiàn)
增加頻道-方法的實(shí)現(xiàn)
2.2.3點(diǎn)擊頻道-方法的實(shí)現(xiàn)
聲明、關(guān)聯(lián)
選中狀態(tài)硝逢,以及點(diǎn)擊頻道下劃線的走向
選中狀態(tài)姨拥,以及點(diǎn)擊頻道下劃線的走向
2.2.3將主界面的控制器中標(biāo)題數(shù)組傳入自定義View中,設(shè)置頻道標(biāo)題渠鸽,并運(yùn)行檢測效果
傳入數(shù)組
當(dāng)前效果展示:
當(dāng)前效果展示
二叫乌、實(shí)現(xiàn)界面跳轉(zhuǎn)
-
解析:點(diǎn)擊頻道,外界徽缚,要想跳轉(zhuǎn)界面憨奸,就得把自定義View中點(diǎn)擊按鈕的tag傳出去。運(yùn)用代理方法猎拨,進(jìn)行傳值膀藐。
1.1設(shè)置代理
設(shè)置代理
1.2遵守協(xié)議
遵守協(xié)議
1.3判斷響應(yīng)
判斷響應(yīng)
當(dāng)點(diǎn)擊頻道時(shí)屠阻,要考慮到,主界面偏移量將發(fā)生變化
2.1聲明一個(gè)主界面额各,并實(shí)現(xiàn)代理方法
宏設(shè)置国觉,代理的遵守
聲明一個(gè)主界面
3.1代理方法的實(shí)現(xiàn)
點(diǎn)擊頻道時(shí),主界面的偏移量會(huì)發(fā)生變化
主界面的偏移量會(huì)發(fā)生變化
主界面的設(shè)置
三虾啦、界面滑動(dòng)聯(lián)動(dòng)標(biāo)題跳轉(zhuǎn)界面
1.遵守協(xié)議麻诀,設(shè)置代理
遵守協(xié)議
設(shè)置代理
2.代理實(shí)現(xiàn)
關(guān)聯(lián)
根據(jù)偏移量跳轉(zhuǎn)標(biāo)題
代理實(shí)現(xiàn)
更正
三、添加跳轉(zhuǎn)隨機(jī)顏色以及界面
項(xiàng)目-隨機(jī)顏色
最終展示效果:
最終展示效果
知識(shí)點(diǎn)小結(jié):
- 1.automaticallyAdjustsScrollViewInsets根據(jù)按所在界面的status bar傲醉,navigationbar蝇闭,與tabbar的高度,自動(dòng)調(diào)整scrollview的 inset,設(shè)置為no硬毕,
- 2.scrollViewDidEndDecelerating表示減速結(jié)束了呻引。然而減速結(jié)束和滑動(dòng)結(jié)束并不等價(jià)。因?yàn)橛行┗瑒?dòng)并不需要減速也可以結(jié)束吐咳。比如我兩只手輪流向左滑動(dòng)逻悠,直到滑動(dòng)到scrollview的右側(cè)盡頭為止,這個(gè)過程的滑動(dòng)是被迫終止而不是自然減速停止韭脊,所以scrollViewDidEndDecelerating方法是不會(huì)被執(zhí)行的
上邊有的會(huì)出現(xiàn)錯(cuò)誤童谒,下面也有更正,請諒解沪羔。