快速搭建APP设置界面

作者: _会飞的鱼 | 来源:发表于2015-09-24 14:07 被阅读984次

    基于 快速搭建一个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

    点击响应 回头更新上

    相关文章

      网友评论

      本文标题:快速搭建APP设置界面

      本文链接:https://www.haomeiwen.com/subject/qkoicttx.html