表视图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. mysql下的常用操作

    本文继 linux下安装mysql,记录下在工作中最常用的mysql语句 MySQL添加字段和删除字段 添加字段: alter table `user_movement_log`Add column ...

  2. 使用UI Automation实现自动化测试 --微软提供的控件Pattern

    微软提供的控件Pattern System.Windows.Automation 命名空间 System.Windows.Automation.BasePattern 为控件模式类提供基实现 Syst ...

  3. qemu-img convert -c -O qcow2 source.raw aim.qcow2

    qemu-img convert -c -O qcow2 source.raw aim.qcow2 qemu-img create -f qcow2 -o preallocation=metadata ...

  4. JQ改变URL

    看到搜索按钮可以把网址提供到URL里面 $('#search_submit').click(function(){ var keywords = $('#keywords').val(); locat ...

  5. 【Linux】部署cobbler

    环境Centos 6.3,本地挂载镜像配置本地yum源 yum -y install dhcp httpd xinetd tftp-server http://dl.fedoraproject.org ...

  6. .NET 可选择的转型路径(转)

    新的一年,您在学习和工作上,想坚守所学,还是尝试转型呢? (1) 继续钻研 C# 4.0 / AJAX / LINQ to AD.LINQ to JavaScript / WF, WCF, WPF, ...

  7. github的入门使用

    原文 http://www.eoeandroid.com/thread-274556-1-1.html [初识Github]首先让我们大家一起喊一句“Hello Github”.YEAH!就是这样. ...

  8. Git 从服务器取得最新代码覆盖本地

    第一种方法 git fetch --all git reset --hard origin/master git fetch下载远程最新的, 然后,git reset master分支重置 第二种方法 ...

  9. Android IOS WebRTC 音视频开发总结(六)-- iOS开发之含泪经验

    前段时间在搞webrtc iOS开发,所以将标题改为了Android IOS WebRTC 音视频开发总结, 下面都是开发过程中的经验总结,转载请说明出处(博客园RTC.Blacker): 1. IO ...

  10. CentOS6.5下安装配置MySQL

    CentOS6.5下安装配置MySQL,配置方法如下: 安装mysql数据库:# yum install -y mysql-server mysql mysql-deve 查看mysql-server ...