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

UITableView表视图以及重建机制的更多相关文章

  1. UI学习笔记---第九天UITableView表视图

    UITableView表视图 一.表视图的使用场景 表视图UITableView是iOS中最重要的视图,随处可见,通常用来管理一组具有相同数据结构的数据 表视图继承自UIScrollView,所以可以 ...

  2. UI:UITableView表视图

    表视图 UITableView,iOS中最重要的视图,随处可⻅见. 表视图通常⽤用来管理⼀一组具有相同数据结构的数据. UITableView继承⾃自UIScrollView,所以可以滚动,表视图的每 ...

  3. UI基础:UITableView表视图

    表视图 UITableView,iOS中最重要的视图,随处可见. 表视图通常用来管理一组具有相同数据结构的数据. UITableView继承于UIScrollView,所以可以滚动 表视图的每条数据都 ...

  4. UI学习笔记---第十天UITableView表视图编辑

    UITableView表视图编辑 表视图编辑的使用场景 当我们需要手动添加或者删除某条数据到tableView中的时候,就可以使用tableView编辑.比如微信 扣扣中删除和某人的通话 当我们需要手 ...

  5. UI学习笔记---第十一天UITableView表视图高级-自定义cell

    自定义cell,多类型cell混合使用,cell自适应高度 自定义cell就是创建一个UITableViewCell的子类 把cell上的空间创建都封装在子类中,简化viewController中的代 ...

  6. UITableView 表视图编辑

    UITableViewController(表视图控制器)继承自UIViewController,自带一个tableView self.view不是UIView而是UITableView dataso ...

  7. iOS UITableView表视图滚动隐藏UINavigationController导航栏

    UITableView 继承于UIScrollView 所以UIScrollView 的代理方法相同适用于UITableView 中 隐藏导航栏的方法为: self.navigationControl ...

  8. IOS开发之表视图(UITableView)

    IOS开发之表视图(UITableView)的基本介绍(一) (一):UITableView的基本概念 1.在IOS开发中,表视图的应用十分广泛和普及.因此掌握表视图的用法显得非常重要.一般情况下对于 ...

  9. IOS 表视图UITableView 束NSBundle

    今天搞了一下表视图UITableView 表视图是在以后应用程序开发中经常用到的一个视图,所以必须要熟练掌握 所获不多,对视图有了一个大概的了解 其中有用到NSBundle , 束   这个类 先说一 ...

随机推荐

  1. 学习练习 Oracle数据库小题

    Course(课程表) Score(成绩表) Teacher(教师表)

  2. No.003 Longest Substring Without Repeating Characters

    Longest Substring Without Repeating Characters Total Accepted: 167158 Total Submissions: 735821 Diff ...

  3. onclicklistener到底怎么用?

    转载地址:http://blog.csdn.net/dickren123/article/details/7216975 相信很多像我一样的新手学习Android开发会遇到这个问题,通过这几天的归类和 ...

  4. 华为OJ平台——杨辉三角的变形

    import java.util.Scanner; /** * 杨辉三角的变形 *第一行为1,后面每一行的一个数是其左上角到右上角的数的和,没有的记为0 * 1 * 1 1 1 * 1 2 3 2 1 ...

  5. .net验证码生成及使用

    验证码的作用: 几年前,大部分网站.论坛之类的是没有验证码的,因为对于一般用户来说验证码只是增加了用户的操作,降低了用户的体验.但是后来各种灌水机器人.投票机器人.恶意注册机器人层出不穷,大大增加了网 ...

  6. magento2 客户端模式less样式修改。

    后台模式改为客户端编译,修改less后要删除静态文件,然后清除缓存,清除浏览器缓存.刷新多次后生效.

  7. Highcharts 连续的堆积面积图

    说明:设置两个柱形图间距为0 Highcharts柱图,设置X轴各Column的间距 plotOption : {    column : {        // 设置每个柱自身的宽度        ...

  8. 【EF学习笔记04】----------EF简单增删改查

    第一步:创建上下文对象 using(var db = new Entities()) { //数据操作 } 新增 UserInfo user = new UserInfo() { UserName = ...

  9. 最简洁粗暴版的虚拟用户配置FTP

    最简洁粗暴版的虚拟用户配置FTP yum安装FTP: yum install vsftpd pam* db4* -y 设置为系统服务:chkconfig –level 35 vsftpd on 2.v ...

  10. winform的datagridview单元格输入限制和右键单击datagridview单元格焦点跟着改变

    在datagridview的EditingControlShowing事件里面添加代码: if (this.dgv_pch.Columns[dgv_pch.CurrentCell.ColumnInde ...