iOS開發之多表檢視滑動切換示例(仿”頭條”客戶端)

青玉伏案發表於2015-12-25

好長時間沒為大家帶來iOS開發乾貨的東西了,今天給大家分享一個頭條新聞客戶端各個類別進行切換的一個示例。在Demo中對所需的元件進行的簡單封裝,在封裝的元件中使用的是純程式碼的形式,如果想要在專案中進行使用,稍微進行修改即可。

廢話少說,先介紹一下功能點,下圖是整個Demo的功能點,最上面左邊的TabBarButtonItem是用來減少條目的,比如下圖有三個按鈕,點選減號會減少一個條目。右邊的為增加一個條目。點選相應的按鈕是切換到對應的表檢視上,下方紅色的是滑動的指示器,同時支援手勢滑動。執行具體效果如下圖所示。

      

一:實現方案

最上方是一個View, View上面例項化了一些按鈕,平分螢幕的寬度,下方是一個ScrollView, ScrollView上面放了一些表檢視,點選不同的Button, 滑動到對應的表示圖上。除了點選按鈕,還可以進行滑動切換,切換時,紅色的指示器也會隨之滑動。

主要的技術點就是通過ScrollView的回撥,通過事件的響應來改變ScrollView的ContentOffset的值。在回撥中根據ContentOffset的值來計算紅色指示器的偏移量。

二:核心程式碼

1.元件中的主要屬性

把上面整個檢視進行了封裝,命名為SlideTabBarView,下面的程式碼是主要屬性:

2.初始化方法如下,在呼叫初始化方法時需要傳入SlideTabBarView的frame和選項卡的個數,初始化函式會呼叫一系列的初始化方法對元件進行初始化,程式碼如下:

3.initDataSource方法主要負責模擬生成下方TableView要顯示的資料。程式碼如下:

4.紅色滑動指示器的初始化程式碼如下所示:

5.ScrollView的初始化程式碼如下, 指定ScrollView的大小位置以及背景顏色,並且設定分頁可用並新增代理。

6.新增上方的按鈕,根據傳入的個數來例項化多個按鈕。

7.點選按鈕觸發的方法如下:

8.初始化下方的多個表檢視:例項化表檢視,並指定委託回撥。

9.ScrollView的回撥方法如下,下面最後一個代理方法是根據ScrollView的偏移量來計算紅色指示器的偏移量,第二個是滑動到哪個tableView,然後進行哪個TableView的資料載入。

10.TableView的代理方法如下,資料來源就是我們剛才做的假資料,Cell是由Xib實現的,使用的時候註冊一下就可用了。

Demo在GitHub上的分享地址:https://github.com/lizelu/SliderTabBar

打賞支援我寫出更多好文章,謝謝!

打賞作者

打賞支援我寫出更多好文章,謝謝!

iOS開發之多表檢視滑動切換示例(仿”頭條”客戶端)

相關文章