IOS 下拉式功能表複用,ios下拉式功能表複用
由於之前曾經用到過下拉式功能表,所以現在花一些時間回過頭來細細整理了一下,逐步完善這個下拉式功能表,並提供一些比較基本的功能,以便日後如果有需要的話可以進行複用,並提供給需要的人蔘考。下拉式功能表同樣分為資料來源和代理方法,提供以下方法:
1 // 2 // XWDropdownMenu.h 3 // XWReusableCodeLib 4 // 5 // Created by xiao on 15/10/30. 6 // Copyright © 2015年 xiao. All rights reserved. 7 // 下拉式功能表 8 9 #import <UIKit/UIKit.h>10 11 @class XWDropdownMenu;12 #pragma mark 資料來源方法13 @protocol XWDropdownMenuDataSource <NSObject>14 @required15 /**16 * 主表格一共有多少行17 */18 - (NSInteger)numberOfRowsInMainTable:(XWDropdownMenu *)dropdownMenu;19 /**20 * 主表格每一行的標題21 * @param row 行號22 */23 - (NSString *)dropdownMenu:(XWDropdownMenu *)dropdownMenu titleForRowInMainTable:(NSInteger)row;24 /**25 * 主表格每一行的子資料 數組26 * @param row 行號27 */28 - (NSArray *)dropdownMenu:(XWDropdownMenu *)dropdownMenu subdataForRowInMainTable:(NSInteger)row;29 @optional30 /**31 * 主表格每一行 分類數量32 * @param row 行號33 */34 - (NSString *)dropdownMenu:(XWDropdownMenu *)dropdownMenu countForRowInMainTable:(NSInteger)row;35 /**36 * 子表格每一行子資料 分類數量37 * @param row 行號38 */39 - (NSArray *)dropdownMenu:(XWDropdownMenu *)dropdownMenu subdataCountForRowInSubTable:(NSInteger)row;40 /**41 * 主表格每一行的表徵圖42 * @param row 行號43 */44 - (NSString *)dropdownMenu:(XWDropdownMenu *)dropdownMenu iconForRowInMainTable:(NSInteger)row;45 /**46 * 子表格每一行的選中表徵圖47 * @param row 行號48 */49 - (NSString *)dropdownMenu:(XWDropdownMenu *)dropdownMenu selectedIconForRowInMainTable:(NSInteger)row;50 @end51 52 #pragma mark 代理方法53 @protocol XWDropdownMenuDelegate <NSObject>54 55 @optional56 - (void)dropdownMenu:(XWDropdownMenu *)dropdownMenu didSelectRowInMainTable:(NSInteger)row;57 - (void)dropdownMenu:(XWDropdownMenu *)dropdownMenu didSelectRowInSubTable:(NSInteger)subrow inMainTable:(NSInteger)mainRow;58 59 @end60 61 #pragma mark 構造方法62 @interface XWDropdownMenu : UIView63 + (instancetype)dropdownMenu;64 -(void)refreshMenu;65 66 @property (nonatomic, weak) id<XWDropdownMenuDataSource> dataSource;67 @property (nonatomic, weak) id<XWDropdownMenuDelegate> delegate;68 69 /**主表被選中的字型顏色,預設是黑色*/70 @property (strong, nonatomic) UIColor *selectedRowTextColor;71 /**該屬性設定成YES,主表比較小*/72 @property (nonatomic, assign)BOOL isMainTableSmall;73 @end
由於還是有一些代碼的,無法在這裡將所有代碼貼出,只能羅列出各個方法並添加註釋,並附上簡單的demo和
demo地址:https://github.com/xiaoyeying/XWDropdownMenuDemo.git
最後如有不足之處歡迎指正和批評,一起學習~~