详解ios中自定义cell,自定义UITableViewCell

发布时间 - 2026-01-10 21:57:42    点击率:

通过继承UITableViewCell来自定义cell

1、创建一个空的项目、命名:

2、创建一个UITableViewController 并且同时创建xib:

3、设置AppDelegate.m中window的根控制器为刚刚创建的TableViewController:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
  self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 
  TableViewController *tableViewController = [[[TableViewController alloc] init] autorelease]; //自动释放 
  //设置根控制器 
  self.window.rootViewController = tableViewController; 
  [self.window makeKeyAndVisible]; 
  return YES; 
} 

4、创建自定义的UITableViewCell:

5、创建自定义cell的xib 拖放需要的控件
选择User Interface。

创建空的xib。

拖入Cell控件。

完成自定义的cell控件。

设置cell控件的Identfier。

绑定Cell类并且将控件的输出口关联到TableViewCell.h文件中。

6、对TableViewController类编码,在委托方法中设置自定义的Cell:

#import "TableViewController.h" 
#import "TableViewCell.h" 
 
@interface TableViewController (){ 
  NSMutableArray *tableData; //表格数据 
} 
 
@end 
 
@implementation TableViewController 
 
- (id)initWithStyle:(UITableViewStyle)style 
{ 
  self = [super initWithStyle:style]; 
  if (self) { 
    // Custom initialization 
  } 
  return self; 
} 
 
- (void)viewDidLoad 
{ 
  [super viewDidLoad]; 
  //初始化表格数据 
  tableData = [[NSMutableArray alloc] init]; 
  for (int i = 0; i< 10; i++) { 
    [tableData addObject:[NSString stringWithFormat:@"MyCellDemon%i",i]]; 
  } 
 
  //设置row的高度为自定义cell的高度 
  self.tableView.rowHeight = 90; 
  
} 
 
- (void)didReceiveMemoryWarning 
{ 
  [super didReceiveMemoryWarning]; 
 } 
 
#pragma mark - Table view data source 
 
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView 
{ 
#warning Potentially incomplete method implementation. 
   return 1; 
} 
 
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
{ 
#warning Incomplete method implementation. 
   return [tableData count]; 
} 
 
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
  //指定cellIdentifier为自定义的cell 
  static NSString *CellIdentifier = @"TableViewCell"; 
  //自定义cell类 
  TableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
  if (cell == nil) { 
    //通过xib的名称加载自定义的cell 
    cell = [[[NSBundle mainBundle] loadNibNamed:@"TableViewCell" owner:self options:nil] lastObject]; 
  } 
   
  //添加测试数据 
  cell.titleLabel.text = [tableData objectAtIndex:indexPath.row]; 
  cell.content.text = @"这是一些测试数据"; 
  //测试图片 
  cell.iamge.image = [UIImage imageNamed:@"testImage.jpg"]; 
   return cell; 
} 
 
#pragma mark - Table view delegate 
 
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
 
} 
 
@end 

最终效果:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# ios  # uitableview  # cell  # uitableviewcell  # 自定义cell  # iOS优化UITableViewCell高度计算的一些事儿  # 详解IOS UITableViewCell 的 imageView大小更改  # IOS UITableViewCell详解及按钮点击事件处理实例  # IOS UITableView和UITableViewCell的几种样式详细介绍  # ios开发UITableViewCell图片加载优化详解  # 自定义  # 创建一个  # 这是  # 测试数据  # 绑定  # 大家多多  # 拖放  # 拖入  # 加载  # TableViewCell  # Identfier 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 零基础网站服务器架设实战:轻量应用与域名解析配置指南  Laravel Asset编译怎么配置_Laravel Vite前端构建工具使用  Laravel如何升级到最新的版本_Laravel版本升级流程与兼容性处理  Laravel怎么使用Blade模板引擎_Laravel模板继承与Component组件复用【手册】  使用豆包 AI 辅助进行简单网页 HTML 结构设计  laravel怎么通过契约(Contracts)编程_laravel契约(Contracts)编程方法  软银砸40亿美元收购DigitalBridge 强化AI资料中心布局  使用Dockerfile构建java web环境  Laravel如何使用软删除(Soft Deletes)功能_Eloquent软删除与数据恢复方法  如何挑选高效建站主机与优质域名?  Win11怎么关闭透明效果_Windows11辅助功能视觉效果设置  Windows11怎样设置电源计划_Windows11电源计划调整攻略【指南】  长沙做网站要多少钱,长沙国安网络怎么样?  ChatGPT 4.0官网入口地址 ChatGPT在线体验官网  Laravel如何实现RSS订阅源功能_Laravel动态生成网站XML格式订阅内容【教程】  Laravel Fortify是什么,和Jetstream有什么关系  php打包exe后无法访问网络共享_共享权限设置方法【教程】  如何在景安服务器上快速搭建个人网站?  详解一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)  如何在阿里云虚拟主机上快速搭建个人网站?  使用spring连接及操作mongodb3.0实例  专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?  手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?  韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐  Laravel Eloquent:优雅地将关联模型字段扁平化到主模型中  微博html5版本怎么弄发语音微博_语音录制入口及时长限制操作【教程】  如何在阿里云通过域名搭建网站?  Python文件异常处理策略_健壮性说明【指导】  活动邀请函制作网站有哪些,活动邀请函文案?  标题:Vue + Vuex 项目中正确使用 JWT 进行身份认证的实践指南  Java解压缩zip - 解压缩多个文件或文件夹实例  如何快速重置建站主机并恢复默认配置?  Laravel如何使用Livewire构建动态组件?(入门代码)  Laravel如何与Inertia.js和Vue/React构建现代单页应用  大同网页,大同瑞慈医院官网?  Laravel路由Route怎么设置_Laravel基础路由定义与参数传递规则【详解】  CSS3怎么给轮播图加过渡动画_transition加transform实现【技巧】  php后缀怎么变mp4格式错误_修改扩展名提示格式不对怎么办【技巧】  Laravel的Blade指令怎么自定义_创建你自己的Laravel Blade Directives  JavaScript数据类型有哪些_如何准确判断一个变量的类型  高防服务器租用首荐平台,企业级优惠套餐快速部署  linux写shell需要注意的问题(必看)  Laravel如何设置自定义的日志文件名_Laravel根据日期或用户ID生成动态日志【技巧】  免费网站制作appp,免费制作app哪个平台好?  最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢?  如何快速搭建虚拟主机网站?新手必看指南  网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?  如何在搬瓦工VPS快速搭建网站?  JS经典正则表达式笔试题汇总  如何将凡科建站内容保存为本地文件?