原文网址: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相关推荐

  1. IOS UITableView详解二性能优化 LOL游戏人物展示

    为什么80%的码农都做不了架构师?>>>    一 重用UITableViewCell UITableView滑动过程中,屏幕底部的信息上移到屏幕,会创建UITableViewCel ...

  2. IOS UITableView详解一数据展示 页面简单实现

    为什么80%的码农都做不了架构师?>>>    一 UITableView简介 UITableView用于表格数据展示,是使用频率最高的控件.UITableView继承自UIScro ...

  3. UITableView 详解 教程

    看TableView的资料其实已经蛮久了,一直想写点儿东西,却总是因为各种原因拖延,今天晚上有时间静下心来记录一些最近学习的TableView的知识.下面进入正题,UITableView堪称UIKit ...

  4. iOS控件——UITableView详解

    iOS开发中经常会用到UITableView,我们平时使用的软件中到处都可以看到它,比如微信.QQ.微博等软件基本上随处都是UITableView.最主要到还有iOS设置. 一  基本介绍 UITab ...

  5. 详解iPhone Tableview分批显示数据

    iPhone Tableview分批显示数据是本文要介绍的内容,主要讲解的是数据的显示.iPhone屏幕尺寸是有限的,如果需要显示的数据很多,可以先数据放到一个table中,先显示10条,table底 ...

  6. iOS TableView 使用详解

     IOS TableView 详解 一.建立 UITableView DataTable = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, ...

  7. xib、stoaryboard详解

    一.xib.sb简介 1.xib执行效率的确没有代码效率高,因为加载要多一步--把xib文件加载到内存中 2.SB还会省去很多页面跳转之间的胶水代码(segue),甚至不用写代码就能实现在各个页面中切 ...

  8. tableview的详解

    一直想对对tableview 进行详解,但是一直没有坚持,好吧,废话少说,直接来干的 UITableView是 显示大型内容的列表 单行,多列 垂直滚动,没有水平滚动 大量的数据集 性能强大,而且普遍 ...

  9. SDWebImage使用详解

    SDWebImage使用详解 这个类库提供一个UIImageView类别以支持加载来自网络的远程图片.具有缓存管理.异步下载.同一个URL下载次数控制和优化等特征. 使用示范的代码: UITableV ...

最新文章

  1. linux系统怎么查找 文件是否存在,在Linux上,如何知道一个可执行文件是否包含调试信息呢?...
  2. 【收藏】23个机器学习最佳入门项目(附源代码)
  3. 前端书签归纳(持续更新)
  4. Select 多个表并且相关联转置
  5. 【DP】【四边形不等式】邮局(P4767)
  6. 叉叉框架_叉/连接框架
  7. JAVA入门级教学之(char类型)
  8. UI设计素材|社交界面模板
  9. F5 在 Gartner 魔力象限中被评为 Web 应用防火墙领导者
  10. 《SQL高级应用和数据仓库基础(MySQL版)》学习笔记 ·007【简单查询】
  11. 管理赚得多还是程序员多_程序员如何为自己开辟出更多的收入渠道
  12. linux jetty 配置文件,linux中Jetty的安装和配置方法
  13. 《人工智能及其应用》1-6章
  14. Octotree插件
  15. 虚拟机安装教程win10_Parallels Desktop如何安装windowns系统?PD虚拟机安装win10系统详细教程
  16. 每年考证时间表(绝对有用)
  17. 【前端】你真的理解JavaScript中的变量和数据类型吗
  18. python和java可以一起学吗_python可以和java一起学吗
  19. 云平台运维的一些心得
  20. 计算机七进制乘法,编程达人

热门文章

  1. form字体和颜色java安卓开发_Android 修改App中默认TextView的字体和颜色
  2. 台式计算机风扇声音大怎么处理,如何解决电脑电源风扇声音大的问题?
  3. r语言 adf检验_r语言中如何进行两组独立样本秩和检验
  4. linux更改用户名_破旧安卓手机第二春,在安卓手机上使用Linux_deploy运行Linux
  5. python如何输出结果_如何在python2.7中打印输出结果?
  6. 力扣 数组中的第K个最大元素
  7. c++ socket学习(1.5)
  8. 划分数据集代码(按照4:1的比例)以及根据各自文件名写入txt文件
  9. LeetCode 15. 三数之和 思考分析(双指针解)
  10. c语言中将整数转换成字符串_在C语言中将ASCII字符串(char [])转换为八进制字符串(char [])...