【转】UITableView详解(UITableViewCell
原文网址:http://www.kancloud.cn/digest/ios-1/107420
上一节中,我们定义的cell比较单一,只是单调的输入文本和插入图片,但是在实际开发中,有的cell上面有按钮,有的cell上面有滑动控件,有的cell上面有开关选项等等,具体参加下面2个图的对比:
@我们可以通过2种方式来实现自定义,一是利用系统的UITableViewCell(但不推荐,因为开发效率不高),举例:还是在这个关键方法中
(UITableViewCell)tableView:(UITableView)tableView cellForRowAtIndexPath:(NSIndexPath)indexPath{static NSString cellIdentifier = @"cell"; UITableViewCell cell = [tableViewdequeueReusableCellWithIdentifier:cellIdentifier]; if(!cell) { cell = [[UITableViewCellalloc]initWithStyle:UITableViewCellStyleDefaultreuseIdentifier:cellIdentifier];
// 首先,各种按钮控件的初始化,一定要放在这个if语句里面,如果放在这个大括号外面,cell被执行n次,那么一个cell上面就会被添加n个控件
// 其次,你在这个括号里面自定义初始化控件后,如果你想给每一个cell的控件显示不同的内容和效果,你在括号外面是取不到对象的,只有通过设置它们继承UIView的属性tag来标识,我们可以想一想,如果控件一多或者别人来接受你的项目,你自己定义了很多的tag,这样合作的效率不高,所以主要推荐第二种
}return cell;
}
@二是,创建UITableViewCell子类,在contentView上实现自定义效果(cell上的所有内容都是显示在cell的属性contentView上),这里也是写这个方法
#import <UIKit/UIKit.h>@interface HMTAssistCell : UITableViewCell @property (nonatomic) UILabel * label; @property (nonatomic) UIButton * button; @end - (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]; if (self) { _button = [UIButton buttonWithType:UIButtonTypeSystem]; _button.backgroundColor = [UIColor redColor]; _button.frame = CGRectMake(150, 60, 50, 100); [_button setTitle:@"油条" forState:UIControlStateNormal]; [self.contentView addSubview:_button]; _label = [[UILabel alloc]initWithFrame:CGRectMake(10, 30, 100, 100)]; _label.backgroundColor = [UIColor greenColor]; [self.contentView addSubview:_label]; } return self; } - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ // 依旧设置重用标识 static NSString * cellIdentifier = @"cell"; // 这里用我们新建的UITableViewCell的子类进行cell重用声明 HMTAssistCell * cell = (HMTAssistCell *)[tableView dequeueReusableCellWithIdentifier:cellIdentifier]; // 如果没有,则创建 if (!cell) { cell = [[HMTAssistCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier]; } // 因为_label是类HMTAssistCell中的属性,所以就能很方便的取出来进行赋值 cell.label.text = [NSString stringWithFormat:@"%d",indexPath.row]; return cell; }
转载于:https://www.cnblogs.com/wi100sh/p/5608736.html
【转】UITableView详解(UITableViewCell相关推荐
- IOS UITableView详解二性能优化 LOL游戏人物展示
为什么80%的码农都做不了架构师?>>> 一 重用UITableViewCell UITableView滑动过程中,屏幕底部的信息上移到屏幕,会创建UITableViewCel ...
- IOS UITableView详解一数据展示 页面简单实现
为什么80%的码农都做不了架构师?>>> 一 UITableView简介 UITableView用于表格数据展示,是使用频率最高的控件.UITableView继承自UIScro ...
- UITableView 详解 教程
看TableView的资料其实已经蛮久了,一直想写点儿东西,却总是因为各种原因拖延,今天晚上有时间静下心来记录一些最近学习的TableView的知识.下面进入正题,UITableView堪称UIKit ...
- iOS控件——UITableView详解
iOS开发中经常会用到UITableView,我们平时使用的软件中到处都可以看到它,比如微信.QQ.微博等软件基本上随处都是UITableView.最主要到还有iOS设置. 一 基本介绍 UITab ...
- 详解iPhone Tableview分批显示数据
iPhone Tableview分批显示数据是本文要介绍的内容,主要讲解的是数据的显示.iPhone屏幕尺寸是有限的,如果需要显示的数据很多,可以先数据放到一个table中,先显示10条,table底 ...
- iOS TableView 使用详解
IOS TableView 详解 一.建立 UITableView DataTable = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, ...
- xib、stoaryboard详解
一.xib.sb简介 1.xib执行效率的确没有代码效率高,因为加载要多一步--把xib文件加载到内存中 2.SB还会省去很多页面跳转之间的胶水代码(segue),甚至不用写代码就能实现在各个页面中切 ...
- tableview的详解
一直想对对tableview 进行详解,但是一直没有坚持,好吧,废话少说,直接来干的 UITableView是 显示大型内容的列表 单行,多列 垂直滚动,没有水平滚动 大量的数据集 性能强大,而且普遍 ...
- SDWebImage使用详解
SDWebImage使用详解 这个类库提供一个UIImageView类别以支持加载来自网络的远程图片.具有缓存管理.异步下载.同一个URL下载次数控制和优化等特征. 使用示范的代码: UITableV ...
最新文章
- linux系统怎么查找 文件是否存在,在Linux上,如何知道一个可执行文件是否包含调试信息呢?...
- 【收藏】23个机器学习最佳入门项目(附源代码)
- 前端书签归纳(持续更新)
- Select 多个表并且相关联转置
- 【DP】【四边形不等式】邮局(P4767)
- 叉叉框架_叉/连接框架
- JAVA入门级教学之(char类型)
- UI设计素材|社交界面模板
- F5 在 Gartner 魔力象限中被评为 Web 应用防火墙领导者
- 《SQL高级应用和数据仓库基础(MySQL版)》学习笔记 ·007【简单查询】
- 管理赚得多还是程序员多_程序员如何为自己开辟出更多的收入渠道
- linux jetty 配置文件,linux中Jetty的安装和配置方法
- 《人工智能及其应用》1-6章
- Octotree插件
- 虚拟机安装教程win10_Parallels Desktop如何安装windowns系统?PD虚拟机安装win10系统详细教程
- 每年考证时间表(绝对有用)
- 【前端】你真的理解JavaScript中的变量和数据类型吗
- python和java可以一起学吗_python可以和java一起学吗
- 云平台运维的一些心得
- 计算机七进制乘法,编程达人
热门文章
- form字体和颜色java安卓开发_Android 修改App中默认TextView的字体和颜色
- 台式计算机风扇声音大怎么处理,如何解决电脑电源风扇声音大的问题?
- r语言 adf检验_r语言中如何进行两组独立样本秩和检验
- linux更改用户名_破旧安卓手机第二春,在安卓手机上使用Linux_deploy运行Linux
- python如何输出结果_如何在python2.7中打印输出结果?
- 力扣 数组中的第K个最大元素
- c++ socket学习(1.5)
- 划分数据集代码(按照4:1的比例)以及根据各自文件名写入txt文件
- LeetCode 15. 三数之和 思考分析(双指针解)
- c语言中将整数转换成字符串_在C语言中将ASCII字符串(char [])转换为八进制字符串(char [])...