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样式,向上推的时候头部会跟着上去。



  • 相关阅读:
    typro常用快捷键
    02: kali-linux破解密码运行脚本并隐藏进程
    01:kali安装使用
    01: 模拟挖矿黑客攻击过程
    12: docker-compose部署django+nginx+uwsgi+celery+redis+mysql
    11: Django + gunicorn + Nginx 的生产环境部署
    博客说明
    计算机中原码,反码,补码之间的关系
    修改linux下yum镜像源为国内镜像
    webp图片技术调研最终结论(完全真实数据可自行分析)
  • 原文地址:https://www.cnblogs.com/aiwz/p/6154240.html
Copyright © 2011-2022 走看看