表视图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样式决定分区的样式不同,
每一个分区可以设置区头区尾
 
 
 
 
 
方法的具体实现如下:
 
 
 
 
 
 
方法的具体实现如下:
 
 
 
 
 
 
 
 
方法的具体实现如下:
 
 

最新文章

  1. 10 Python Optimization Tips and Issues
  2. SQL查询语句中的 limit offset(转 )
  3. 在本地环境用虚拟机win2008 sever搭建VS2013 + SVN 代码版本控制环境
  4. HW6.30
  5. 【转】文件读写NDK(或Linux)
  6. frame与iframe的区别?
  7. 查询某库所有表的rows &查看当前sql的注册信息
  8. Javascript 调试利器 Firebug使用详解
  9. SQL基础操作汇总
  10. Unlink——2016 ZCTF note2解析
  11. String常用类
  12. 虚拟机linux系统明明已经安装了ubuntu,但是每次重新进入就又是选择安装界面
  13. Confluence 6 管理 Atlassian 提供的 App
  14. llvm pass
  15. C#中DataTable删除多条数据
  16. linux基础知识(1)
  17. Django Book学习笔记(下)
  18. CTSC2018&APIO2018游记
  19. mysql存储引擎innodb、myisam区别
  20. [转]python进行中文文本聚类(切词以及Kmeans聚类)

热门文章

  1. Activity的task相关 详解
  2. extern 相关
  3. 【HTML/XML 8】XSL,可扩展样式表语言
  4. CentOS6.5 ssh远程连接缓慢解决方法
  5. 要在一般处理程序中获取其他页面的session值
  6. 浅谈JavaScript的事件响应
  7. [Cocos2d-x for WP8学习笔记] HelloWorld结构分析
  8. s3c6410_u-boot-2010.03移植【续】
  9. atexit注册的函数是在main函数之后执行?
  10. Linux 64位编译\链接32位程序