详解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


相关推荐: Win11怎么关闭资讯和兴趣_Windows11任务栏设置隐藏小组件  使用PHP下载CSS文件中的所有图片【几行代码即可实现】  香港服务器租用费用高吗?如何避免常见误区?  详解阿里云nginx服务器多站点的配置  北京网页设计制作网站有哪些,继续教育自动播放怎么设置?  Android利用动画实现背景逐渐变暗  如何自定义safari浏览器工具栏?个性化设置safari浏览器界面教程【技巧】  如何在阿里云购买域名并搭建网站?  PythonWeb开发入门教程_Flask快速构建Web应用  Linux系统运维自动化项目教程_Ansible批量管理实战  网站建设要注意的标准 促进网站用户好感度!  jQuery 常见小例汇总  如何批量查询域名的建站时间记录?  美食网站链接制作教程视频,哪个教做美食的网站比较专业点?  如何彻底卸载建站之星软件?  怎么用AI帮你为初创公司进行市场定位分析?  潮流网站制作头像软件下载,适合母子的网名有哪些?  Laravel的.env文件有什么用_Laravel环境变量配置与管理详解  Laravel如何配置中间件Middleware_Laravel自定义中间件拦截请求与权限校验【步骤】  Laravel怎么进行浏览器测试_Laravel Dusk自动化浏览器测试入门  ai格式如何转html_将AI设计稿转换为HTML页面流程【页面】  EditPlus中的正则表达式 实战(1)  香港服务器如何优化才能显著提升网站加载速度?  Laravel如何生成和使用数据填充?(Seeder和Factory示例)  Laravel如何使用Sanctum进行API认证?(SPA实战)  如何快速使用云服务器搭建个人网站?  详解Android——蓝牙技术 带你实现终端间数据传输  中山网站推广排名,中山信息港登录入口?  轻松掌握MySQL函数中的last_insert_id()  清除minerd进程的简单方法  Windows10如何删除恢复分区_Win10 Diskpart命令强制删除分区  UC浏览器如何设置启动页 UC浏览器启动页设置方法  如何在IIS管理器中快速创建并配置网站?  零服务器AI建站解决方案:快速部署与云端平台低成本实践  郑州企业网站制作公司,郑州招聘网站有哪些?  公司网站制作需要多少钱,找人做公司网站需要多少钱?  Laravel Blade模板引擎语法_Laravel Blade布局继承用法  如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?  浅谈redis在项目中的应用  通义万相免费版怎么用_通义万相免费版使用方法详细指南【教程】  Laravel怎么实现支付功能_Laravel集成支付宝微信支付  免费网站制作appp,免费制作app哪个平台好?  Laravel如何监控和管理失败的队列任务_Laravel失败任务处理与监控  Thinkphp 中 distinct 的用法解析  利用python获取某年中每个月的第一天和最后一天  香港服务器网站测试全流程:性能评估、SEO加载与移动适配优化  简单实现Android验证码  百度浏览器网页无法复制文字怎么办 百度浏览器复制修复  CSS3怎么给轮播图加过渡动画_transition加transform实现【技巧】  iOS正则表达式验证手机号、邮箱、身份证号等