A.需要掌握的
1.基本属性和方法
  • 设置UITableView的dataSource、delegate
  • UITableView多组数据和单组数据的展示
  • UITableViewCell的常见属性
  • UITableView的性能优化(cell的循环利用)
  • 自定义cell
 
2.UITableView的概念
UITableView就是表格数据
UITableView继承自UIScrollView,支持垂直滚动,而且性能好
 
3.UITableView的两种样式
  • UITableViewStylePlain
  • UITableViewStyleGrouped
 
 
4.展示数据
  • UITableView需要一个数据源dataSource来显示数据
  • UITableView向数据源查询一共有多少行数据和每一行的显示内容
  • 没有数据源的UITableView只是个空壳
  • 凡是遵守了UITableViewDataSource协议的OC对象,都可以是UITableView的数据源
 
5.UITableView和数据源
 // 数据总组数
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView; // Default is 1 if not implemented // 每组数据的行数
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section; // 每一行显示的内容
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;
 
数据源引用:
 // 数据源
@property(nonatomic, assign) id<UITableViewDataSource> dataSource;
 
6.UITableView展示数据的过程
(1)得到数据的组数
 - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView;
 
(2)得到每组数据的行数
 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section;
 
(3)得到每行数据的内容
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;
 
7.解析.plist文件,将数据组中的每个Dictionary用Model封装起来存储
 
8.使用MVC模式
M: Model
V: View
C: Control
 
9.Cell简介
 
 
10.UITableViewCell的contentView
 
 
 
11.UITableViewCell的结构
 
 
12.Cell重用原理
     为了应对大量数据的加载和显示,不必创建相同数量的Cell,只需要把当前需要显示的数据加载到cell上就行了。
     原理:滚动列表,移出窗口的UITableViewCell会被放入到一个对象池中,当有数据需要显示的时候,就会从对象池中取出可用的UITableViewCell,然后加载数据显示。
 
13.自定义的cell重用
     有时候为了特定的需求,需要自定义继承自UITableViewCell的类,可能一个UITableView中存在多种cell,会造成对象池中cell类型的混乱。
     解决:利用UITableViewCell的 NSSting *reuseIdentifier 属性,初始化cell的时候指定reuseIdentifier,这样在对象池取出cell对象的时候要先通过这个字符串标识检查,如果不存在就是使用传入的字符串标识初始化一个cell对象。
 
14.cell重用代码
 
 
 
 
 
 

[iOS基础控件 - 6.0] UITableView的更多相关文章

  1. [iOS基础控件 - 7.0] UIWebView

    A.基本使用 1.概念 iOS内置的浏览器控件 Safari浏览器就是通过UIWebView实现的   2.用途:制作简易浏览器 (1)基本请求 创建请求 加载请求 (2)代理监听webView加载, ...

  2. [iOS基础控件 - 6.5] UITableView的数据刷新

    A.需求 1.以LOL英雄列表为蓝本,给其加上实时修改英雄名称的功能 2.使用UIAlertView 3.全局刷新reloadData 4.局部刷新     B.实现 1.使用UIAlertView ...

  3. [iOS基础控件 - 5.5] 代理设计模式 (基于”APP列表"练习)

    A.概述      在"[iOS基础控件 - 4.4] APP列表 进一步封装,初见MVC模式”上进一步改进,给“下载”按钮加上效果.功能      1.按钮点击后,显示为“已下载”,并且不 ...

  4. [iOS基础控件 - 6.1] 汽车品牌列表 UITableView多项显示

    A.实现思路 1.拖入UITableView 2.拖曳.连线UITableView控件 3.Controller遵守UITalbeViewDataSource协议 4.设置UITableView的da ...

  5. iOS 基础控件(下)

    上篇介绍了UIButton.UILabel.UIImageView和UITextField,这篇就简短一点介绍UIScrollView和UIAlertView. UIScrollView 顾名思义也知 ...

  6. [iOS基础控件 - 6.11.3] 私人通讯录Demo 控制器的数据传递、存储

    A.需求 1.搭建一个"私人通讯录"Demo 2.模拟登陆界面 账号 密码 记住密码开关 自动登陆开关 登陆按钮 3.退出注销 4.增删改查 5.恢复数据(取消修改)   这个代码 ...

  7. [iOS基础控件 - 6.9.1] 聊天界面Demo 代码

    框架:   所有代码文件:   Model: // // Message.h // QQChatDemo // // Created by hellovoidworld on 14/12/8. // ...

  8. [iOS基础控件 - 6.9] 聊天界面Demo

    A.需求 做出一个类似于QQ.微信的聊天界面 1.每个cell包含发送时间.发送人(头像).发送信息 2.使用对方头像放在左边,我方头像在右边 3.对方信息使用白色背景对话框,我方信息使用蓝色背景对话 ...

  9. [iOS基础控件 - 6.7] 微博展示 使用代码自定义TableCell(动态尺寸)

    A.需求 1.类似于微博内容的展示 2.头像 3.名字 4.会员标志 5.内容 6.分割线 7.配图(可选,可有可无)   code source: https://github.com/hellov ...

随机推荐

  1. MySQL在windows和linux下的表名大小写问题

    MySQL在windows下是不区分大小写的,将script文件导入MySQL后表名也会自动转化为小写,结果再想要将数据库导出放到linux服务 器中使用时就出错了.因为在linux下表名区分大小写而 ...

  2. [itint5]环形最大连续子段和

    http://www.itint5.com/oj/#9 一开始有了个n*n的算法,就是把原来的数组*2,由环形的展开成数组.然后调用n次最大子段和的方法.超时. 后来看到个O(n)的算法,就是如果不跨 ...

  3. jquery的ajax和原始的ajax这两种方式的使用方法

    jquery的ajax是对原始的ajax进行的封装,方便用户的使用.下面用代码分别举例各自的使用方式. jquery的ajax发送和接收xml数据格式. $.ajax({ type: "PU ...

  4. Linux如何在虚拟机中挂载iso yum源

    首先,将作为源的iso的挂载到系统上. 代码如下: mount -o loop /dev/cdrom /mnt/iso/ 或者 mount -o loop /xxx/xxx.iso /mnt/iso/ ...

  5. allegro添加多个过孔

    place--Via arrays matrix: [数] 矩阵:模型:[生物][地质] 基质:母体:子宫:[地质] 脉石 boundary:边界:范围:分界线 unplaced : adj. 未受到 ...

  6. Git教程(10)git比较复杂的功能

    1,只拣选某分支中的一个提交,然后把它合并到当前分支 $ git cherry-pick e43a6fd3e94888d76779ad79fb568ed180e5fcdf 2,Rerere 它是一种重 ...

  7. linux shell 常用基本语法

    转自网络,真正来源不详.... 一. Linux基本命令 1.1.  cp命令 该命令的功能是将给出的文件或目录拷贝到另一文件或目录中,功能十分强大. 语法: cp [选项] 源文件或目录 目标文件或 ...

  8. 最短路径(Floyd 模板题)

    题目:http://acm.sdut.edu.cn/sdutoj/showproblem.php?pid=2143&cid=1186 #include<stdio.h> #incl ...

  9. 让ie6支持fixed最简单和实用的方法

    <!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8& ...

  10. 查看各个release版本 golang的改动

    https://golang.org/doc/go1.1 https://golang.org/doc/go1.2 https://golang.org/doc/go1.3 https://golan ...