iOS開發之封裝一個水平功能表列類的教程,ios功能表列

來源:互聯網
上載者:User

iOS開發之封裝一個水平功能表列類的教程,ios功能表列

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

建立工程項目和視圖控制器

      1、建立一個empty(空的)工程項目,建立一個UIViewController;

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

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

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

建立封裝水平功能表列類

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

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

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

建立HorizontalMenuView的屬性和方法

      1、開啟HorizontalMenuView.h檔案;

      2、建立菜單名數組和設定菜單名方法setNameWithArray。

寫出setNameWithArray實現方法

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

      2、現在獨立建立了設定菜單名方法,所以添加按鈕等代碼就轉移到setNameWithArray實現方法內;

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

為HorizontalMenuView顯示控制項

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

      2、設定按鈕標識tag;

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

      4、添加按鈕點擊響應事件;

      5、添加分割線、底部劃線和當前被選中的標識底線。

實現按鈕點擊響應事件

      1、遍曆擷取self所有子類;

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

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

      4、根據被點擊的sender.tag動畫移動標識底線。

添加協議代理,實現傳值

      1、在HorizontalMenuView.h添加協議;

      2、在協議內寫協議方法擷取被選中菜單;

      3、建立協議委託;

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

使用方法

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

      2、添加協議委託代理;

      3、建立並初始化HorizontalMenuView,添加至視圖;

      4、設定菜單名數組;

      5、設定委託代理;

      6、實現協議方法。

代碼運行效果

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.