博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
tableView
阅读量:5150 次
发布时间:2019-06-13

本文共 4102 字,大约阅读时间需要 13 分钟。

1.如何利用tableView如何展示数据

设置数据源对象(一般是控制器)

self.tableView.dataSource = self;

 

数据源对象需要遵守协议->UITableViewDataSource

@interface ViewController ()
@end

 

实现数据源协议里面的方法

/*** 告诉tableView⼀一共有多少组*/- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{}/*** 告诉tableView第section组有多少⾏行*/- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{}/*** 告诉tableView每⼀一⾏行显⽰示的内容(tableView每⼀一⾏行都是UITableViewCell)*/- (UITableViewCell *)tableView:(UITableView *)tableViewcellForRowAtIndexPath:(NSIndexPath *)indexPath{}/*** 告诉tableView每⼀一组头部显⽰示的标题*/- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section{}/*** 告诉tableView每⼀一组尾部显⽰示的标题*/- (NSString *)tableView:(UITableView *)tableView titleForFooterInSection:(NSInteger)section{}

 

2.tableView常见的设置

// 设置tableView每⼀一⾏行cell的⾼高度,默认是44self.tableView.rowHeight = 80;// 设置tableView每⼀一组头部的⾼高度self.tableView.sectionHeaderHeight = 50;// 设置tableView每⼀一组尾部的⾼高度self.tableView.sectionFooterHeight = 50;// 设置分割线的颜⾊色,如果设置[UIColor clearColor]隐藏分割线self.tableView.separatorColor = [UIColor redColor];// 设置分割线的样式self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;// 设置表头self.tableView.tableHeaderView = [[UISwitch alloc] init] ;// 设置表尾self.tableView.tableFooterView = [UIButtonbuttonWithType:UIButtonTypeContactAdd];// 设置索引条上⽂文字颜⾊色self.tableView.sectionIndexColor = [UIColor redColor];// 设置索引条的背景颜⾊色self.tableView.sectionIndexBackgroundColor = [UIColor blackColor];

 

3.tableViewCell的常见设置

// 设置cell右边的指⽰示控件cell.accessoryView = [[UISwitch alloc] init];// 设置cell右边的指⽰示样式(accessoryView优先级 > accessoryType)cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;// 设置cell的背景view// backgroundView优先级 > backgroundColorUIView *bg = [[UIView alloc] init];bg.backgroundColor = [UIColor blueColor];cell.backgroundView = bg;// 设置cell的背景颜⾊色cell.backgroundColor = [UIColor redColor];// 设置cell选中的背景viewUIView *selectbg = [[UIView alloc] init];selectbg.backgroundColor = [UIColor purpleColor];cell.selectedBackgroundView = selectbg;// 设置cell选中的样式cell.selectionStyle = UITableViewCellSelectionStyleNone;

 

4.代理方法

/*** 当选中某⼀一⾏行cell就会调⽤用*/- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{}/*** 当取消选中某⼀一⾏行cell就会调⽤用*/- (void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath{}/*** 返回每⼀一组显⽰示的头部控件**/- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section{}/*** 返回每⼀一组显⽰示的尾部控件**/- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section{}/*** 返回每⼀一组头部的⾼高度**/- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{}/*** 返回每⼀一组尾部的⾼高度**/- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section{}/*** 返回tableView每⼀一⾏行的⾼高度*/- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{}

 

5.性能优化

传统的写法

/*** 每当有⼀一个cell进⼊入视野范围内就会调⽤用1次*/- (UITableViewCell *)tableView:(UITableView *)tableViewcellForRowAtIndexPath:(NSIndexPath *)indexPath{// 0.定义⼀一个重⽤用标识static NSString *ID = @"wine";// 1.⾸首先去缓存池中查找可循环利⽤用的cellUITableViewCell *cell= [tableView dequeueReusableCellWithIdentifier:ID];// 2.如果缓存池中没有,⾃自⼰己创建if (cell == nil) {cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:ID];}//3. 设置数据cell.textLabel.text = [NSString stringWithFormat:@"%zd⾏行数据",indexPath.row];return cell;}

注册

- (void)viewDidLoad {[super viewDidLoad];// 根据ID 这个标识 注册对应的 cell类型[self.tableView registerClass:[UITableViewCell class]forCellReuseIdentifier:ID];}/*** 每当有⼀一个cell进⼊入视野范围内就会调⽤用1次*/- (UITableViewCell *)tableView:(UITableView *)tableViewcellForRowAtIndexPath:(NSIndexPath *)indexPath{// 1.⾸首先去缓存池中查找可循环利⽤用的cellUITableViewCell *cell= [tableView dequeueReusableCellWithIdentifier:ID];// 2.设置数据cell.textLabel.text = [NSString stringWithFormat:@"%zd⾏行数据",indexPath.row];return cell;}

 

6.索引条

/*** 返回每⼀一组的索引标题(数组中都是NSString对象)*/- (NSArray
*)sectionIndexTitlesForTableView:(UITableView*)tableView{}

 

转载于:https://www.cnblogs.com/xufengyuan/p/6858037.html

你可能感兴趣的文章
sql查询语句
查看>>
软件测试1
查看>>
Spring MVC 入门示例讲解
查看>>
神经网络可以拟合任意函数的视觉证明A visual proof that neural nets can compute any function...
查看>>
人脸识别必读的N篇文章
查看>>
testbench——文件读入输出
查看>>
我理解的objective-C内存管理
查看>>
java-多态的向上向下转型
查看>>
STL:原地归并排序模板(InplaceMergeSort)
查看>>
uva1252
查看>>
C++ 引用
查看>>
Storm starter - Overview
查看>>
linux ftp、sftp、telnet服务开通、更改Orale最大连接数
查看>>
POJ3304(KB13-C 计算几何)
查看>>
Web Worker javascript多线程编程(二)
查看>>
ajaxUploadFile在IE9等IE浏览器,上传变json下载的问题解决(SpringMVC + ajaxUploadFile)...
查看>>
虚拟机Vmware安装CentOS7.x
查看>>
android-检测耳机的插入和拔出动作
查看>>
关于Bin文件的解析
查看>>
mysql参数优化
查看>>