Demo效果展示:
效果展示
詳解:
一、環(huán)境的配置,搭建項目
-
解析:對于這個項目,首先我們要創(chuàng)建一個顯示主界面的控制器,對其嵌入一個導(dǎo)航Nav,在將Nav作為窗口的根視圖控制器。
1.初始化
項目初始化
2.設(shè)置背景顏色以及自適應(yīng)
設(shè)置背景顏色以及自適應(yīng)
二、設(shè)置分段界面
-
解析:其實就是自定義一個分段顯示的View。在自定義這個分段view是我們首先,要考慮我們這個分段View要聲明所需的屬性(上面button文字標(biāo)題是什莫,顏色是什莫,字號多大),并創(chuàng)建一個數(shù)組進行上面button的容量器。然后,初始化進行。
1.1自定義與初始化
自定義與初始化
1.2添加到顯示界面
添加到顯示界面 - 解析:
- 創(chuàng)建一個方法,目的是,控制器傳入一個數(shù)組,并根據(jù)數(shù)組中的個數(shù)向自定義View上添加頻道的數(shù)目,又知道頻道的數(shù)量,有根據(jù)頻道的標(biāo)題數(shù)量而定,所以控制器傳入的數(shù)組是包含控制器標(biāo)題的數(shù)組。
-
方法內(nèi):循環(huán)遍歷,添加頻道->設(shè)置下劃線->創(chuàng)建一個數(shù)組盛放所有頻道->默認(rèn)選中第一個頻道
2.1聲明方法
聲明方法,目的如圖所示
2.2.1更正
更正
2.2.2增加頻道-方法的實現(xiàn)
增加頻道-方法的實現(xiàn)
2.2.3點擊頻道-方法的實現(xiàn)
聲明、關(guān)聯(lián)
選中狀態(tài),以及點擊頻道下劃線的走向
選中狀態(tài),以及點擊頻道下劃線的走向
2.2.3將主界面的控制器中標(biāo)題數(shù)組傳入自定義View中,設(shè)置頻道標(biāo)題,并運行檢測效果
傳入數(shù)組
當(dāng)前效果展示:
當(dāng)前效果展示
二、實現(xiàn)界面跳轉(zhuǎn)
-
解析:點擊頻道,外界,要想跳轉(zhuǎn)界面,就得把自定義View中點擊按鈕的tag傳出去。運用代理方法,進行傳值。
1.1設(shè)置代理
設(shè)置代理
1.2遵守協(xié)議
遵守協(xié)議
1.3判斷響應(yīng)
判斷響應(yīng)
當(dāng)點擊頻道時,要考慮到,主界面偏移量將發(fā)生變化
2.1聲明一個主界面,并實現(xiàn)代理方法
宏設(shè)置,代理的遵守
聲明一個主界面
3.1代理方法的實現(xiàn)
點擊頻道時,主界面的偏移量會發(fā)生變化
主界面的偏移量會發(fā)生變化
主界面的設(shè)置
三、界面滑動聯(lián)動標(biāo)題跳轉(zhuǎn)界面
1.遵守協(xié)議,設(shè)置代理
遵守協(xié)議
設(shè)置代理
2.代理實現(xiàn)
關(guān)聯(lián)
根據(jù)偏移量跳轉(zhuǎn)標(biāo)題
代理實現(xiàn)
更正
三、添加跳轉(zhuǎn)隨機顏色以及界面
項目-隨機顏色
最終展示效果:
最終展示效果
知識點小結(jié):
- 1.automaticallyAdjustsScrollViewInsets根據(jù)按所在界面的status bar,navigationbar,與tabbar的高度,自動調(diào)整scrollview的 inset,設(shè)置為no,
- 2.scrollViewDidEndDecelerating表示減速結(jié)束了。然而減速結(jié)束和滑動結(jié)束并不等價。因為有些滑動并不需要減速也可以結(jié)束。比如我兩只手輪流向左滑動,直到滑動到scrollview的右側(cè)盡頭為止,這個過程的滑動是被迫終止而不是自然減速停止,所以scrollViewDidEndDecelerating方法是不會被執(zhí)行的
上邊有的會出現(xiàn)錯誤,下面也有更正,請諒解。