表视图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. 学习记录 java 链表知识

    01.import java.util.HashMap; 02.import java.util.Scanner; 03.import java.util.Stack; 04. 05./** 06. ...

  2. 简单的TCPIP 客户端 服务器

    // soClient.cpp : Defines the entry point for the console application. // #include "stdafx.h&qu ...

  3. Java学习一

    Java程序的运行机制和JVM     JVM(java 虚拟机) Java Virtual Machine java语言比较特殊,由Java语言编写的程序需要经过编译步骤, JDK java SE ...

  4. Android入门之GridView(表格控件)

    GridView是一个表格控件,可以在每个单元格中显示自定义的View或者字符串.在这里我们要实现一个图标下方有文字的效果. 1.首先我们应自定义布局文件image_text.xml.代码如下: &l ...

  5. Ajax-(get/post/jQuery方式请求)

    < !DOCTYPE html > < html xmlns = "http://www.w3.org/1999/xhtml" > < head &g ...

  6. RGB颜色空间与YCbCr颜色空间的互转

    在人脸检测中会用到YCbCr颜色空间,因此就要进行RGB与YCbCr颜色空间的转换.在下面的公式中RGB和YCbCr各分量的值的范围均为0-255. RGB转到YCbCr: float y= (col ...

  7. 爱拼图游戏android源码完整版

    这个是一款爱拼图游戏源码完整版,该游戏源码比较完整的,可以支持音乐的播放在游戏的玩的过程中,还可以控制系统的声音等,可以支持多种图片的选择来进行玩的,还可以根据自己的爱好选择不同的难度来的,级别分为: ...

  8. objective-C运算符和表达式

    运算符可以分为以下几种: 算术运算符:+,-,*,/,%,++,—-. 关系运算符:<,>,<=,>=,==,!= 布尔逻辑运算符:!,&&,|| 位运算符:| ...

  9. c#中Split函数的使用介绍

    平时经常用到split,在这里做一个系统的总结. Split函数  作用      返回一个下标从零开始的一维数组,它包含指定数目的子字符串.  语法       Split(expression[, ...

  10. js各种宽高(3)

    有时候项目中会用到用js获取元素位置来定位元素,首先通过图片说明scrollWidth,clientWidth,offsetWidth的关系. JS获取各种宽度.高度的简单介绍: scrollHeig ...