• UITableView表视图以及重建机制


    表视图UITableView
     
    表视图UITableView,是IOS中最重要的视图,随处可见
    表视图通常用来管理一组具有相同数据结构的数据
    UITableView继承自UIScrollView,所以可以滚动
    表视图的每一条数据都是显示在UITableViewCell对象中
    表视图可以分区显示数据,每个分区称为一个section,每一行称为row,编号都是从0开始
     
     
     
     tableView的样式是个枚举类型,有两种样式:plain和grouped可以根据在不同的使用场景下设置不同的样式 

    typedef NS_ENUM(NSInteger, UITableViewStyle) {

        UITableViewStylePlain,                  // regular table view

        UITableViewStyleGrouped                 // preferences style table view

    };

     
     
     
    DataSource数据源
     
    我们需要给tableView指定一个数据源,他负责给tableView提供数据
    需要实现协议中两个必须实现的方法

     TableView 作为一个空表,自身并不确定项目中需要展示的行数显示的内容以及单元格样式,所以需要通过代理来获取;

     TableView对应的试图控制器需要遵守UITableViewDataSource协议,并实现两个必须实现的协议方法

     1、每一个分区需要展示多少行,(通过协议方法返回值提供给TableView)

     2、指定分区指定行所需要得单元格对象(通过协议方法返回值提供给TableView)

     TableView真正展示数据的视图为其所管理的单元格所以代理对象在协议方法中创建单元格的同时需要为单元格提供数据

     
     
     

    设置单元格的选中样式 在IOS7开始选中的样式一共只有两种可用,一种是选中没有样式,一种是选中后显示灰色

     
     
     
     
     
     
    以下是UITableViewDataSource协议中必须实现的两个方法,以及一些重要属性的设置
     
     
     
     
    重用机制
     
    UITableView靠mutableSet来实现重用功能
    出屏幕的cell会被添加到mutableSet中,进入屏幕的cell,先从set中获取,如果获取不到,才创建一个cell,在cell显示之前,给cell赋上响应的内容
    cell的reuseldentifier是重用的关键
    重用机制是tableView提供的用于控制和优化内存的解决方案,其原理为:根据TableView的大小以及行高创建指定个数的单元格,当产生滑动时,一些暂时划出TableView的单元格就会进入到TableView的重用机制队列被保存下来,等待下次继续使用,那么代理对象通过当前方法为TableView提供单元格对象时优先根据提前指定的重用标识符获取重用队列中是否有可用的单元格,如果有,则重新为单元格添加数据,如果没有则创建新的单元格,然后添加数据,返回给表视图让其管理显示
    下面是重用机制创建的步骤:
     
    表视图的配置
    NSIndexPath
     
     
     
     
     
    多个分区
    tableView默认是一个分区,可以设置多个分区
    tableView的plain、group样式决定分区的样式不同,
    每一个分区可以设置区头区尾
     
     
     
     
     
    方法的具体实现如下:
     
     
     
     
     
     
    方法的具体实现如下:
     
     
     
     
     
     
     
     
    方法的具体实现如下:
     
     
  • 相关阅读:
    浏览器的同源策略及跨域解决方案
    前端开发工具系列
    初始Vue
    form表单组件
    聚合和分组F,Q和事物,cookie,session
    js循环找id
    div模拟textarea文本域轻松实现高度自适应
    prototype原型
    Javascript异步编程方法
    js中map、filter用法
  • 原文地址:https://www.cnblogs.com/496668219long/p/4471232.html
Copyright © 2020-2023  润新知