基于 快速搭建一个app项目的情况下 快速搭建一个设置界面
在此 我就在第四个控制器里面实现
第四个控制器 继承于 UITablViewConroller
一、新建模型文件
Paste_Image.png模型的设计
(LLGroupItem)组模型设计
@interface LLGroupItem : NSObject
//** 头部标题 headerTitle */
@property (nonatomic ,copy) NSString *headerTitle;
//** 尾部标题 headerTitle */
@property (nonatomic ,copy) NSString *footerTitle;
//** 一组中有几个元素 itemsArray */
@property (nonatomic ,strong) NSArray *itemsArray;
@end
行模型的设计(LLSettingItem.h),分析每一行的所有元素:比如只有标题和图片
@interface LLSettingItem : NSObject
//** 标题 title */
@property (nonatomic ,copy) NSString *title;
//** 图标 icon */
@property (nonatomic ,copy) NSString *icon;
+ (instancetype)itemWithTitle:(NSString *)title icon:(NSString *)icon;
//加方法 快速
+ (instancetype)settingItem;
@end
LLSettingItem.m 里面
如下实现方法
+ (instancetype)itemWithTitle:(NSString *)title icon:(NSString *)icon
{
LLSettingItem *item = [self settingItem];
item.title = title;
item.icon = icon;
return item;
}
+ (instancetype)settingItem
{
return [[self alloc] init];
}
来到控制器里面 做如下操作
#import "LLFourViewController.h"
#import "LLGroupItem.h"
#import "LLSettingItem.h"
@interface LLFourViewController ()<UITabBarDelegate,UITableViewDataSource>
//当前界面的数据源 用来存储分组模型
@property (nonatomic ,strong) NSMutableArray *groupArray;
@end
@implementation LLFourViewController
//groupArray懒加载
- (NSMutableArray *)groupArray
{
if (!_groupArray) {
_groupArray = [NSMutableArray array];
}
return _groupArray;
}
- (instancetype)init
{
// 设置tableView的分组样式为Group样式
return [self initWithStyle:UITableViewStyleGrouped];
}
- (void)viewDidLoad {
[super viewDidLoad];
//添加第一组模型
[self group1];
//添加第二组模型
[self group2];
//添加第三组模型
[self group3];
}
- (void)group1
{
//创建组模型
LLGroupItem *group0 = [[LLGroupItem alloc] init];
//创建行模型 图片我就随便用TabBar的图片代替
LLSettingItem *item = [LLSettingItem itemWithTitle:@"推送设置" icon:@"TabBar4"];
LLSettingItem *item1 = [LLSettingItem itemWithTitle:@"涨跌显示" icon:@"TabBar2"];
LLSettingItem *item2 = [LLSettingItem itemWithTitle:@"清除缓存" icon:@"TabBar1"];
//保存模型数组
group0.itemsArray = @[item,item1,item2];
//把组模型保存到groupArray数组中
[self.groupArray addObject:group0];
}
- (void)group2
{
//创建组模型
LLGroupItem *group1 = [[LLGroupItem alloc] init];
//创建行模型
LLSettingItem *item = [LLSettingItem itemWithTitle:@"免责声明" icon:@"TabBar1"];
LLSettingItem *item1 = [LLSettingItem itemWithTitle:@"常见问题" icon:@"TabBar2"];
LLSettingItem *item2 = [LLSettingItem itemWithTitle:@"关于我们" icon:@"TabBar3"];
//保存模型数组
group1.itemsArray = @[item,item1,item2];
//把组模型保存到groupArray数组中
[self.groupArray addObject:group1];
}
- (void)group3
{
//创建组模型
LLGroupItem *group2 = [[LLGroupItem alloc] init];
//创建行模型
LLSettingItem *item = [LLSettingItem itemWithTitle:@"推荐给朋友一起来赚钱吧" icon:@"TabBar4"];
LLSettingItem *item1 = [LLSettingItem itemWithTitle:@"退出当前账号" icon:@"TabBar5"];
//保存模型数组
group2.itemsArray = @[item,item1];
//把组模型保存到groupArray数组中
[self.groupArray addObject:group2];
}
#pragma mark - UITableView代理方法
/**
* 返回有多少组的代理方法
*/
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return self.groupArray.count;
}
/**
* 返回每组有多少行的代理方法
*/
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
LLGroupItem *group = self.groupArray[section];
return group.itemsArray.count;
}
/**
* 返回每一行Cell的代理方法
*/
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
// 设置Cell的重用标识
static NSString *ID = @"cell";
// 去缓存池中取Cell
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:ID];
// 若取不到便创建一个带重用标识的Cell
if (cell == nil) {
cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:ID];
}
// 设置Cell右边的小箭头
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
// 取出组模型
LLGroupItem *group = self.groupArray[indexPath.section];
// 根据组模型取出行(Cell)模型
LLSettingItem *item = group.itemsArray[indexPath.row];
// 根据行模型的数据赋值
cell.textLabel.text = item.title;
// icon
cell.imageView.image = [UIImage imageNamed:item.icon];
return cell;
}
@end
大功告成
如图
Paste_Image.png点击响应 回头更新上
网友评论