技术专题tableView
2015-10-15 15:58
281 查看
tableView在开发中扮演很重要的角色,我们应该了解table View的各种样式以胜任开发工作。
1.tableview 的组成结构
表头 单元格 节头 单元格 节尾 表尾
对于表头和表尾应用的不多,表头如刷新,
见代码
http://mp.weixin.qq.com/s?__biz=MjM5NTIyNTUyMQ==&mid=210281204&idx=1&sn=1ed54cd04deeb1e8598464ab93d236be&scene=23&srcid=1014zc2a0JfBJXnenWAPmLt9#rd
某个自定义的刷新方法。
表尾通常显示“更多”,也是一个加载数据的方式。
节头和节尾就是视具体情况而定了。
2.我们来看看苹果公司自带的单元格样式UITableViewCellStyle:
2.1 default只有图标和主标题
2.2SubTitle 有图标,主标题,副标题(这个可用于目前开发的项目)。
2.3value1:可以有图标(可选),主标题(左边对齐),副标题(右边对齐,可选)
2.4 value2:主标题副标题区中对齐
3.tableview 的数据源协议与委托协议
委托协议
tableView:didSelectRowAtIndexPath:选择单元格响应事件
还有其他一些的,暂时不介绍了
数据源协议:
tableview:cellforRowAtIndexPath:
返回cell.为单元格提供数据
tableview:numberOfRowsInSection:返回一个节中的行数
还有其他一些用的不多
4.创建表单元格:
如何理解表视图的单元格是需要重用的?
创建表单元格有三种方式:
4.1 纯代码
static NSString * CellIdentifier = @"CellIdetifier";
UITableViewCell * cell = [tableview dequeueReusableCellWithIdentifier:CellIdentifier];
//既然是纯代码的,为什么需要用设置identifier,因为cell是需要重用的,也就是说,当创建了一个对象,同时设置了他的标志(reuseIdentifier:)那在下次
调用cell 时,就直接用上面这种方法,可以这样理解吧。这叫可重用
if(cell == nil) {
cell = [[ UITableViewCell alloc] initWithStyle:UItableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
4.2代码加xib
这种方法需要在xib 中设置标志符,同时指定单元格的style.
那代码部分也与纯代码方式是有区别的:
static NSString * CellIdentifier = @"CellIdetifier";
UITableViewCell * cell = [tableview dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPah];
这里是有IndexPath的
4.3自定义Cell
自定义Cell一般也是通过xib 和代码结合的方式创建。
在xib 上,自定义好样式,在标识检查器当中将custom class 目录下的class 改为创建的cell 类。
同样在属性检查器上,需要设置identifier ,以及style.(custom).
在代码部分,除了需要定义cell 类之外,在创建自定义cell时,
static NSString * CellIdentifier = @"CellIdetifier";
CustomCell * cell = [tableview dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPah];
注意以上代码与4.2 的区别。
然后就可以在cellForRowAtIndexPath数据源方法上对cell的一些自定义属性进行赋值了。
4.4 自定义Cell 还有另外一种形式,就是通过创建tableview的方式。
[self.diseaseTableView
registerNib:[UINib
nibWithNibName:@"FreeTelDepartmentCell"
bundle:nil]
forCellReuseIdentifier:@"FreeTelDepartmentCell"];//注明这里只是注册而已。
FreeTelDepartmentCell *cell = [tableView
dequeueReusableCellWithIdentifier:@"FreeTelDepartmentCell"];
//这里是通过重用的方式调用cell.
之前转载的一篇博文讲的也是这个。
4.5 对于dequeueReusableCellWithIdentifier:index;和dequeueReusableCellWithIdentifier方法在xcode上运行好像没有差。
1.tableview 的组成结构
表头 单元格 节头 单元格 节尾 表尾
对于表头和表尾应用的不多,表头如刷新,
见代码
http://mp.weixin.qq.com/s?__biz=MjM5NTIyNTUyMQ==&mid=210281204&idx=1&sn=1ed54cd04deeb1e8598464ab93d236be&scene=23&srcid=1014zc2a0JfBJXnenWAPmLt9#rd
某个自定义的刷新方法。
表尾通常显示“更多”,也是一个加载数据的方式。
节头和节尾就是视具体情况而定了。
2.我们来看看苹果公司自带的单元格样式UITableViewCellStyle:
2.1 default只有图标和主标题
2.2SubTitle 有图标,主标题,副标题(这个可用于目前开发的项目)。
2.3value1:可以有图标(可选),主标题(左边对齐),副标题(右边对齐,可选)
2.4 value2:主标题副标题区中对齐
3.tableview 的数据源协议与委托协议
委托协议
tableView:didSelectRowAtIndexPath:选择单元格响应事件
还有其他一些的,暂时不介绍了
数据源协议:
tableview:cellforRowAtIndexPath:
返回cell.为单元格提供数据
tableview:numberOfRowsInSection:返回一个节中的行数
还有其他一些用的不多
4.创建表单元格:
如何理解表视图的单元格是需要重用的?
创建表单元格有三种方式:
4.1 纯代码
static NSString * CellIdentifier = @"CellIdetifier";
UITableViewCell * cell = [tableview dequeueReusableCellWithIdentifier:CellIdentifier];
//既然是纯代码的,为什么需要用设置identifier,因为cell是需要重用的,也就是说,当创建了一个对象,同时设置了他的标志(reuseIdentifier:)那在下次
调用cell 时,就直接用上面这种方法,可以这样理解吧。这叫可重用
if(cell == nil) {
cell = [[ UITableViewCell alloc] initWithStyle:UItableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
4.2代码加xib
这种方法需要在xib 中设置标志符,同时指定单元格的style.
那代码部分也与纯代码方式是有区别的:
static NSString * CellIdentifier = @"CellIdetifier";
UITableViewCell * cell = [tableview dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPah];
这里是有IndexPath的
4.3自定义Cell
自定义Cell一般也是通过xib 和代码结合的方式创建。
在xib 上,自定义好样式,在标识检查器当中将custom class 目录下的class 改为创建的cell 类。
同样在属性检查器上,需要设置identifier ,以及style.(custom).
在代码部分,除了需要定义cell 类之外,在创建自定义cell时,
static NSString * CellIdentifier = @"CellIdetifier";
CustomCell * cell = [tableview dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPah];
注意以上代码与4.2 的区别。
然后就可以在cellForRowAtIndexPath数据源方法上对cell的一些自定义属性进行赋值了。
4.4 自定义Cell 还有另外一种形式,就是通过创建tableview的方式。
[self.diseaseTableView
registerNib:[UINib
nibWithNibName:@"FreeTelDepartmentCell"
bundle:nil]
forCellReuseIdentifier:@"FreeTelDepartmentCell"];//注明这里只是注册而已。
FreeTelDepartmentCell *cell = [tableView
dequeueReusableCellWithIdentifier:@"FreeTelDepartmentCell"];
//这里是通过重用的方式调用cell.
之前转载的一篇博文讲的也是这个。
4.5 对于dequeueReusableCellWithIdentifier:index;和dequeueReusableCellWithIdentifier方法在xcode上运行好像没有差。
相关文章推荐
- Vertex&Frag
- IIS7启用32位应用程序
- JavaScript窗口及输入输出
- Java读取properties配置文件时,中文乱码解决方法 .
- 线性规划问题的matlab求解
- 远程安装软件控制台
- jq中选择器的选择问题
- JAVA获取CLASSPATH路径
- 【C语言深入】[002] valotile 关键字:
- ocp-430
- 我是怎么招聘程序员的
- ocp-429
- 改写不走索引的SQL
- 其实你不知道MultiDex到底有多坑
- Deep learning系列(八)参数初始化
- 实现不同的日志不同的输出
- 如何用vs2008写c#程序
- glyph
- Scope Chain(作用域链)
- WebRtc研究二(WebRtcDemo的使用)