由于之前曾經用到過下拉菜單,所以現在花一些時間回過頭來細細整理了一下,逐步完善這個下拉菜單,并提供一些比較基本的功能,以便日后如果有需要的話可以進行復用,并提供給需要的人參考。下拉菜單同樣分為數據源和代理方法,提供以下方法:
1 // 2 // XWDropdownMenu.h 3 // 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 subdataCountForRowInMainTable:(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
最后如有不足之處歡迎指正和批評,一起學習~~
新聞熱點
疑難解答