zoukankan      html  css  js  c++  java
  • (十三)UITableView数据模型化

    多组数据的TableView的设计方法:每一组用一个模型对象表示。

    模型包含了标题数据和行数据的数组,在控制器里包含模型的组来对各个模型进行初始化。

    在tableView相应的方法中,从控制器的模型组中取出模型来处理。

    需要补充一点cell的获取,使用方法:

    UITableViewCell *cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:nil];

    这种方法不必先创建cell然后赋值identifier。

    以展示汽车数据为例,汽车数据包含了头标题写车系,尾描述,和相应车系的车辆数据。

    1.建立模型,模型的结构为:

    @interface CarGroup : NSObject
    
    /**
     *  头部标题
     */
    @property (nonatomic, copy) NSString *title;
    
    /**
     *  尾部标题
     */
    @property (nonatomic, copy) NSString *desc;
    
    /**
     *  这组所有的车(字符串)
     */
    @property (nonatomic, strong) NSArray *cars;
    
    @end
    2.在控制期内建立一个模型组,并进行初始化:

    @property (nonatomic, strong) NSArray *carGroups;
    重写get方法进行懒加载:

    - (NSArray *)carGroups{
        if (_carGroups == nil) {
            //初始化各组
            //德系品牌
            CarGroup *cg1 = [[CarGroup alloc] init];
            cg1.title = @"德系品牌";
            cg1.desc = @"德系品牌很好";
            cg1.cars = @[@"奔驰",@"宝马",@"奥迪"];
            
            CarGroup *cg2 = [[CarGroup alloc] init];
            cg2.title = @"日韩品牌";
            cg2.desc = @"日韩品牌品牌很好";
            cg2.cars = @[@"本田",@"丰田"];
            
            _carGroups = @[cg1,cg2];
            
        }
        return _carGroups;
    }
    3.在各个方法中从carGroups中获取模型,然后赋值,不再赘述。

    Tip:控制器可以控制状态栏,通过重写perfersStatusBarXxx系列方法进行修改。



    TableView的Style样式讨论

    plain样式,向上推的时候头部会停住(例如QQ好友列表),iOS的细节:第二组的标题会把第一组的标题顶上去。

    Grouped样式,向上推的时候头部会跟着上去。



  • 相关阅读:
    ie下常见的css兼容问题
    jQuery Easing 使用方法及其图解
    数组中常用的15个方法
    js按位运算符及其妙用
    图片格式知多少
    Linux top命令的用法详解
    Another app is currently holding the yum lock; waiting for it to exit...
    ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this S tatem
    Gitlab与Jenkins结合构成持续集成(CI)环境
    cobbler无人值守安装
  • 原文地址:https://www.cnblogs.com/aiwz/p/6154240.html
Copyright © 2011-2022 走看看