表视图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. Digest [information value filtering]

    http://oak.cs.ucla.edu/~cho/papers/cho-filter.pdf 最近对评估方法进行研究,这篇paper是一种对IR方法进行总结,不错的角度,也比较全面

  2. Java基础——数据类型之间的转换

    Java数据类型分为三大类,即布尔型.字符型和数值型.其中数值型又分为整型和浮点型.Java的基本数据类型(8种)为布尔型boolean(1字节):字符型char(2字节):整型byte(1字节).s ...

  3. 操作笔记:linux下安装ftp

    1,安装ftp [root@iZ945sgm0ugZ ~]# yum install vsftpd 安装成功的信息: [root@iZ945sgm0ugZ ~]# yum install vsftpd ...

  4. .net HttpClient类(System.Net.Http) c#并发使用测试、压测

    .net HttpClient类(System.Net.Http) c#并发使用测试.压测

  5. php获取文件创建时间、修改时间

    filemtime ( string filename ) 返回文件上次被修改的时间,出错时返回 FALSE.时间以 Unix 时间戳的方式返回,可用于 date(). 例如:$a=filemtime ...

  6. 【C++面试】常考题复习

    // CPP_Test@2014.10.22.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <assert.h&g ...

  7. Linux 命令之 grep

    1:将/etc/passwd中有root字符的行显示出来 [root@bogon zkero]# grep -n 'root' /etc/passwd :root:x:::root:/root:/bi ...

  8. tostring格式化输出

    C 货币 2.5.ToString("C") ¥2.50 D 十进制数 25.ToString("D5") 00025 E 科学型 25000.ToString ...

  9. vs2008 连接 VSS不提示输入密码

    之前使用的vs2005,每次登录的时候会有vss帐号输入框,如上图. 后来安装了vs2008,再打开源代码的时候输入框就不见了,下面是解决办法. --------------------------- ...

  10. 三、第一个Struts2应用案例(编码步骤)

    第一个Struts2应用案例(编码步骤) 编写2个jsp hello.jsp <body>     <a href="${pageContext.request.conte ...