首頁 > 手機軟體

iOS開發 封裝一個水平選單欄類

2019-12-04 19:06:58

      開發比較大的軟體需要建立選單欄,選單欄可以讓使用者快速查詢選擇自己所需要的事物。常見的選單欄是由一系列按鈕和圖片組合而成。建立時需要多少個選單項就手動新增多少個按鈕和圖片。如果選單項多就選擇迴圈建立。當前經驗是封裝一個水平方向的列表選單欄類,類被封裝後可以省掉每次使用時都需要重新建立、排版的複雜過程。大大提高開發效率。

1

建立工程專案和檢視控制器

      1、建立一個empty(空的)工程專案,新建一個UIViewController;

      2、選中工程,右鍵-New File…選擇「Cocoa Touch Class」-Next,給個合理的名稱ViewController,再Next完成;

      3、在AppDelegate.m檔案包含#import "ViewController.h";

      4、初始化建立ViewController的檢視控制器,並用導航欄控制器包含。將之設定為根檢視控制器。


2

建立封裝水平選單欄類

      1、選中工程,右鍵-New File…選擇「Cocoa Touch Class」-Next;

      2、選擇繼承於UIView的檢視,命名為:HorizontalMenuView;

      3、Next後選擇儲存路徑(一般預設),最後Create建立完成。


3

建立HorizontalMenuView的屬性和方法

      1、開啟HorizontalMenuView.h檔案;

      2、建立選單名陣列和設定選單名方法setNameWithArray。


4

寫出setNameWithArray實現方法

      1、在Xcode6.0以前UIView的m檔案會有initWithFrame方法,而Xcode6.0就沒有了,所以可以考慮把程式碼寫在drawRect方法裡面;

      2、現在獨立建立了設定選單名方法,所以新增按鈕等程式碼就轉移到setNameWithArray實現方法內;

      3、將設定的值賦值給選單名全域性變數_menuArray。


5

為HorizontalMenuView顯示控制元件

      1、根據_menuArray元素個數,for建立按鈕;

      2、設定按鈕標識tag;

      3、設定按鈕字型大小 顏色 狀態;

      4、新增按鈕點選響應事件;

      5、新增分割線、底部劃線和當前被選中的標識下劃線。


6

實現按鈕點選響應事件

      1、遍歷獲取self所有子類;

      2、判斷是否是按鈕類[UIButton class];

      3、如果是UIButton則根據被點選的sender.tag設定各個按鈕的使能;

      4、根據被點選的sender.tag動畫移動標識下劃線。


7

新增協定代理,實現傳值

      1、在HorizontalMenuView.h新增協定;

      2、在協定內寫協定方法獲取被選中選單;

      3、建立協定委託;

      4、在HorizontalMenuView.m的點選實現方法獲取下標值。



8

使用方法

      1、在ViewController.m包含#import "HorizontalMenuView.h";

      2、新增協定委託代理;

      3、建立並初始化HorizontalMenuView,新增至檢視;

      4、設定選單名陣列;

      5、設定委託代理;

      6、實現協定方法。


9

程式碼執行效果如圖




IT145.com E-mail:sddin#qq.com