用于快速構建設置界面 UITableView 子類:XFSettings
使用 UITableViewController 為基類,用于快速構建設置界面,可定制性強,有多個 cell 類型緩存重用,擴展性強,可繼承 XFSettingCell 或功能更強大的 XFSettingInfoCell 作為父類進行自定義樣式,采用 JOSN 進行布局和對功能的添加。
代碼示例:
//.h #import "XFSettings.h" @interface ViewController : XFBaseSettingTableViewController @end //.m @interface ViewController ()<XFBaseSettingDataSource> @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; // must invoke super method. self.navigationItem.title = @"設置"; self.view.backgroundColor = [UIColor whiteColor]; self.dataSource = self; // set self as dataSource. } - (NSArray *)settingItems { return @[ // groupArr @{ // groupModel XFSettingGroupHeader: @"基本信息", XFSettingGroupItems : @[ // items @{ // itemModel XFSettingItemTitle: @"我的朋友", XFSettingItemIcon : @"1435582804_group", XFSettingItemClass : [XFSettingInfoItem class], // 這個字段用于判斷是否有右邊輔助功能的cell,不寫則沒有 XFSettingItemAttrDetailText : @"你的好友", XFSettingItemRelatedCellClass:[XFSettingInfoDotCell class],// 自定義的cell XFSettingItemDestViewControllerClass : [XFNewFriendViewController class], // 如果有目標控制器 XFSettingOptionActionBlock : ^(XFSettingInfoCountCell *cell,XFSettingPhaseType phaseType,id intentData){ // 如果有可選的操作 if (phaseType == XFSettingPhaseTypeCellInteracted) { cell.rightInfoLabel.hidden = YES; } } },// end itemModel @{ XFSettingItemTitle: @"我的消息", XFSettingItemIcon : @"1435527299_message", XFSettingItemClass : [XFSettingInfoItem class], XFSettingItemAttrDetailText : @"新的好友", XFSettingItemAttrRightInfo : @"3", XFSettingItemRelatedCellClass:[XFSettingInfoCountCell class], XFSettingOptionActionBlock : ^(XFSettingInfoCountCell *cell,XFSettingPhaseType phaseType,id intentData){ // 交互時處理 if (phaseType == XFSettingPhaseTypeCellInteracted) { int count = cell.rightInfoLabel.text.intValue; cell.rightInfoLabel.text = [NSString stringWithFormat:@"%d",++count]; } } }, @{ XFSettingItemTitle: @"緩存大小", XFSettingItemIcon : @"1435529531_CD-DVD Drive-2", XFSettingItemClass : [XFSettingInfoItem class], XFSettingItemAttrDetailText : @"cache", XFSettingItemAttrRightInfo : @"正在計算", XFSettingItemRelatedCellClass:[XFSettingInfoCell class], XFSettingOptionActionBlock : ^(XFSettingInfoCell *cell,XFSettingPhaseType phaseType,id intentData){ [self cacheDirClear:cell phaseType:phaseType]; } }, @{ XFSettingItemTitle: @"保存我的設置", XFSettingItemIcon : @"1435527366_1-8", XFSettingItemClass : [XFSettingSwitchItem class], XFSettingOptionActionBlock : ^(XFSettingCell *cell,XFSettingPhaseType phaseType,id intentData){ if (phaseType == XFSettingPhaseTypeCellInteracted) { if ([intentData[XFSettingIntentDataSwitchOn] boolValue]) { NSLog(@"%@", @"保存"); }else{ NSLog(@"%@", @"取消保存"); } } } }, @{ XFSettingItemTitle: @"檢測新版本", XFSettingItemIcon : @"1435529156_cloud-arrow-up", // 使用自定義向右箭頭 XFSettingItemArrowIcon : @"CellArrow", XFSettingItemClass : [XFSettingInfoItem class], XFSettingItemRelatedCellClass:[XFSettingInfoCell class], XFSettingItemAttrRightInfo : @"有新版本!", XFSettingItemDestViewControllerClass : [UpdateViewController class], XFSettingOptionActionBlock : ^(XFSettingInfoCell *cell,XFSettingPhaseType phaseType,id intentData){ // 自定義初始化樣式 if (phaseType == XFSettingPhaseTypeCellInit) { cell.rightInfoLabel.textColor = [UIColor orangeColor]; } } }, @{ XFSettingItemTitle: @"vip幫助", XFSettingItemIcon : @"1435529211_circle_help_question-mark", XFSettingOptionActionBlock : ^(XFSettingCell *cell,XFSettingPhaseType phaseType,id intentData){ } } ], XFSettingGroupFooter : @"lalala~" }// end groupModel ];// endgroupArr } @end
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!