自定义单元格

当苹果公司提供给的单元格样式不能我们的业务需求的时候,我们需要自定义单元格。在iOS 5之前,自定义单元格可以有两种实现方式:代码实现和用xib技术实现。用xib技术实现相对比较简单,创建一个xib文件,然后定义一个继承 UITableViewCell类单元格类即可。在iOS 5之后我们又有了新的选择,故事板实现方式,这种方式比xib方式更简单一些。

我们把简单表视图案例的原型图修改一下,这种情况下四种内置的单元格样式就不合适了。

采用“Single View Application”工程模版创建一个名为“CustomCell”的工程,Table View属性的“Prototype Cells”项目设为1(除此之外其它的操作过程与上同)。

设计画面中上部会有一个单元格设计画面,我们可以在这个位置进行单元格布局的设计。从对象库拖拽一个Label和Image View到单元格设计画面,调整好它们的位置。

创建自定义单元格类CustomCell, 选择UITableViewCell为父类

再 回到IB设计画面,在IB中左边选择“Table View Controller Scene” → “Table View Controller” → “Table View” → “Table View Cell”,打开单元格的标识检查器,在Class的选项中选择CustomCell类。

为Lable和ImageView控件连接输出口

本案例的代码如下:

  1. //
  2. //  CustomCell.h
  3. //  CustomCell
  4. #import <UIKit/UIKit.h>
  5. @interface CustomCell : UITableViewCell
  6. @property (weak, nonatomic) IBOutlet UILabel *name;
  7. @property (weak, nonatomic) IBOutlet UIImageView *image;
  8. @end
  9. //
  10. //  CustomCell.m
  11. //  CustomCell
  12. #import “CustomCell.h”
  13. @implementation CustomCell
  14. @end

CustomCell类的代码比较简单,在有些业务中还需要定义动作。

修改视图控制器ViewController.m中的tableView: cellForRowAtIndexPath:方法,代码如下:

  1. - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
  2. {
  3. static NSString *CellIdentifier = @”Cell”;
  4. CustomCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
  5. if (cell == nil) {
  6. cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
  7. }
  8. NSUInteger row = [indexPath row];
  9. NSDictionary *rowDict = [self.listTeams objectAtIndex:row];
  10. cell.name.text =  [rowDict objectForKey:@"name"];
  11. cell.image.image = [UIImage imageNamed:[rowDict objectForKey:@"image"]];
  12. NSUInteger row = [indexPath row];
  13. NSDictionary *rowDict = [self.listFilterTeams objectAtIndex:row];
  14. cell.textLabel.text =  [rowDict objectForKey:@"name"];
  15. NSString *imagePath = [rowDict objectForKey:@"image"];
  16. imagePath = [imagePath stringByAppendingString:@".png"];
  17. cell.image.image = [UIImage imageNamed:imagePath];
  18. cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
  19. return cell;
  20. }

我们看到if (cell == nil){}代码被移除,这是因为我们在IB中已经将重用标识设定为Cell了。 方法中的其它代码与简单表一致,此处不再赘述。运行一下。

iOS开发那些事--自定义单元格实现相关推荐

  1. Element Plus 虚拟化表格组件的使用(排序、筛选、自定义单元格渲染) - 个人使用总结

    前言 element-plus@2.2.0 后提供虚拟化表格组件,解决表格数据过大导致的卡顿等性能问题.相对于表格组件,用法上区别还是挺大的,尤其是一些附加的功能,例如排序.筛选.自定义单元格/表头渲 ...

  2. flutter自定义单元格_使用自定义大小的单元格制作复杂的UICollectionView布局(第1部分)

    flutter自定义单元格 Recently I built a screen with a pretty complex layout containing self sizing cells. I ...

  3. 使用VUE组件创建SpreadJS自定义单元格(一)

    作为近五年都冲在热门框架排行榜首的Vue,大家一定会学到的一部分就是组件的使用.前端开发的模块化,可以让代码逻辑更加简单清晰,项目的扩展性大大加强.对于Vue而言,模块化的体现集中在组件之上,以组件为 ...

  4. 【UIKit】表格自定义单元格(UITableViewCll)

    自定义表格单元格(Cell)操作 使用NIb文件自定义单元格(Cell) 1.          创建UITableViewCell的子类,创建的同时记得选择生成xib文件(当然你也可以将控件通过代码 ...

  5. iOS开发多线程篇—自定义NSOperation

    iOS开发多线程篇-自定义NSOperation 一.实现一个简单的tableView显示效果 实现效果展示: 代码示例(使用以前在主控制器中进行业务处理的方式) 1.新建一个项目,让控制器继承自UI ...

  6. qtableview设置单元格颜色_一键解锁Excel自定义单元格格式!

    实际工作中,常需要我们对单元格格式进行自定义设置,来突出显示我们需要看到的数据. 在自定义单元格格式时,我们常用如下方式先打开[设置单元格格式]对话框,再点击数字分类下的自定义: [开始]选项卡下的[ ...

  7. POI如何自定义单元格背景颜色

    提出问题 POI如何自定义单元格背景颜色??? 解决问题 例一:具体的看注释 import org.apache.poi.hssf.usermodel.*; import org.apache.poi ...

  8. 《Ext详解与实践》节选:自定义单元格的显示格式

    有时候,需要在Grid中显示一个链接,或根据数字的大小显示不同的颜色,又或者使用固定格式显示记录编号等,这就需要自定义单元格的显示格式.在Ext的Grid可以很容易的实现自定义单元格的显示格式.在定义 ...

  9. Swift - 自定义单元格实现微信聊天界面

    1,下面是一个放微信聊天界面的消息展示列表,实现的功能有: (1)消息可以是文本消息也可以是图片消息 (2)消息背景为气泡状图片,同时消息气泡可根据内容自适应大小 (3)每条消息旁边有头像,在左边表示 ...

最新文章

  1. OpenWrite 公开内测,做最懂你的技术自媒体管理平台!
  2. Scrum sprint plan中规模估算的常见方式
  3. 【算法学习笔记】二叉树的基本操作实现和应用举例,根据先序与中序遍历建立二叉树的实现
  4. Caffe 增加自定义 Layer 及其 ProtoBuffer 参数
  5. 在Java中键入Safe SQL
  6. 打开 igv java_必备可视化Integrative Genomic Viewer(IGV)
  7. 利用Exchange 2003实现移动办公新体验
  8. python快速排序时间复杂度-快速排序python实现总结
  9. 初用python爬取麦x学院python教学视频
  10. 【物联网】全球SIM连接解决IoT设备换卡难问题
  11. 扇贝计算机英语单词,扇贝英语单词
  12. 故事板(Storyboard)
  13. Virtual Hosts
  14. 优惠券使用/凑满减优惠/硬币组合问题(结果包括最优组合和最优值)
  15. 软件设计模式—命令模式
  16. 成人世界黑话鉴定指南
  17. Orcale 批量更新sql
  18. 如何使用R批量处理文件
  19. 盘点一下CodePen上那些优秀的前端作品(01)
  20. 补码一位乘法(Booth算法)

热门文章

  1. jvm在windows和linux,理解JVM如何使用Windows和Linux上的本机内存
  2. zipoutputstream压缩文件响应到浏览器_现代浏览器内部机制之导航这件小事
  3. python计算机基础_python计算机基础
  4. 神策数据丨九大行业数字化经营指南集锦,值 100% 收藏
  5. 直播预告丨聚焦银行数字化运营体系搭建,助力银行构建核心竞争力
  6. Java核心(三)并发中的线程同步与锁
  7. 78、VLAN间路由配置实验之单臂路由
  8. Android Studio配置GreenDAO 3.2.0和使用方法
  9. (绝对正确)Zabbix基于lamp的安装流程
  10. Android使用开源项目Xutils实现多线程下载文件