`

iOS开发那些事--自定义单元格实现

阅读更多

自定义单元格

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

 

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

  1

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

 2

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

 3

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

 4

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

 5

为Lable和ImageView控件连接输出口

 6

本案例的代码如下:

//

//  CustomCell.h

//  CustomCell

#import <UIKit/UIKit.h>

@interface CustomCell : UITableViewCell

@property (weak, nonatomic) IBOutlet UILabel *name;

@property (weak, nonatomic) IBOutlet UIImageView *image;

@end

//

//  CustomCell.m

//  CustomCell

#import “CustomCell.h”

@implementation CustomCell

@end

 

 

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

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

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

{

static NSString *CellIdentifier = @”Cell”;

CustomCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

    if (cell == nil) {

        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];

    }

NSUInteger row = [indexPath row];

NSDictionary *rowDict = [self.listTeams objectAtIndex:row];

cell.name.text =  [rowDict objectForKey:@"name"];

cell.image.image = [UIImage imageNamed:[rowDict objectForKey:@"image"]];

NSUInteger row = [indexPath row];

NSDictionary *rowDict = [self.listFilterTeams objectAtIndex:row];

cell.textLabel.text =  [rowDict objectForKey:@"name"];

NSString *imagePath = [rowDict objectForKey:@"image"];

imagePath = [imagePath stringByAppendingString:@".png"];

cell.image.image = [UIImage imageNamed:imagePath];

cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;

return cell;

}

 

 

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

7

分享到:
评论

相关推荐

    IOS 自定义单元格

    在iOS开发中,自定义单元格是提升用户体验和界面美观度的重要手段。当我们需要在UITableView或者UICollectionView中展示具有复杂布局或特殊交互效果的数据时,通常会使用自定义单元格。本篇文章将深入探讨如何在iOS...

    IOS之表视图UITableView自定义单元格

    在iOS开发中,UITableView是一种非常重要的视图组件,它用于展示列表数据,广泛应用于各种应用场景,如联系人列表、消息列表等。本篇文章将聚焦于如何在iOS中自定义UITableView的单元格,以实现更丰富的视觉效果和...

    ios-长按手势自定义复制功能.zip

    在iOS开发中,手势交互是用户体验的重要组成部分,特别是在移动设备上。`ios-长按手势自定义复制功能.zip`这个压缩包文件显然包含了关于如何在iOS应用中实现长按手势以提供复制功能的相关代码示例。我们将深入探讨这...

    ios-自定义单元格的单选/多选.zip

    在iOS开发中,自定义单元格的单选和多选是一项常见的需求,特别是在构建列表(如UITableView)展示数据时。自定义单元格可以提供更丰富的交互体验和视觉效果,而单选或多选功能则允许用户在多个选项中进行选择。本...

    自定义单元格

    在iOS开发中,自定义单元格(Custom Cell)是一个常见的需求,它允许开发者根据特定的UI设计和功能需求,创建个性化的表格视图(UITableView)或集合视图(UICollectionView)中的每一行或每个单元格。本教程将通过...

    ios-瀑布流自定义.zip

    在iOS开发中,UITableView通常用于创建列表样式的数据展示,而瀑布流布局则需要更复杂的计算和布局管理。开发者wjTime通过自定义这个控件,使得开发者可以使用熟悉的UITableView API来实现瀑布流效果,降低了开发...

    ios-超详细自定义瀑布流 以及 自定义标签.zip

    在iOS开发中,瀑布流(Waterfall Flow)是一种常见的布局方式,尤其在电商应用中广泛使用,因为它可以有效地展示各种尺寸...通过学习和实践,你将能够更好地理解和掌握自定义视图组件的制作技巧,提升你的iOS开发能力。

    ios-UICollectionView实现自定义拖动排序功能.zip

    在iOS开发中,UICollectionView是一种强大的视图组件,用于展示可滚动的数据集合,它可以灵活地排列和展示各种类型的单元格。本教程将详细讲解如何利用UICollectionView实现自定义的拖动排序功能,使用户能够通过...

    iOS开发例程-QQUITableView

    在实现数据源方法时,确保返回正确的单元格类型,比如 `-tableView:cellForRowAt:` 方法中,根据需要加载并配置自定义单元格。此外,还要实现 `-numberOfSections(in:)` 和 `-tableView:numberOfRowsInSection:` ...

    UITablevew自定义单元格

    在iOS开发中,`UITableView` 是一个非常重要的组件,它用于展示列表数据,通常用于创建类似通讯录、菜单或者消息列表等界面。然而,当需求更复杂,需要呈现出既有行又有列的数据时,标准的 `UITableView` 可能无法...

    ios-点击组头收起单元格.zip

    在iOS开发中,"ios-点击组头收起单元格.zip"这个项目示例主要涉及的是UITableView的高级功能实现,即通过点击表视图的组头来收起或展开该组内的所有单元格。这种交互设计常见于需要展示层级结构数据的应用中,如日程...

    swift-ExcelViewIOS表格自定义视图支持XIB布局支持代码布局支持锁双向表头

    在iOS应用开发中,我们经常会遇到需要展示类似Excel表格的数据,这时可以借助自定义视图来实现。"swift-ExcelViewIOS表格自定义视图支持XIB布局支持代码布局支持锁双向表头"是一个专为iOS平台设计的开源库,它提供了...

    iOS、UITableViewCell、自定义

    在iOS开发中,UITableView是展示数据列表的一种常见控件,而UITableViewCell则是表格中的每一行单元格。为了使应用界面更具个性化和用户体验更佳,开发者往往需要对UITableViewCell进行自定义。本话题将深入探讨如何...

    ios-表格视图,自定义UICollectionView实现.zip

    3. **UICollectionViewCell**:自定义单元格类,用于设置单元格的外观和行为。你可以根据需求添加子视图,设置约束,并在`prepareForReuse`方法中进行必要的清理。 4. **UICollectionViewFlowLayout**:自定义布局...

    自定义删除单元格

    在iOS开发中,UITableView是一种常见的数据展示控件,用于显示多行数据,用户可以通过滑动来浏览和交互。当我们需要实现自定义的删除单元格功能时,通常会涉及到UITableView的代理方法以及UI设计的个性化定制。`...

    ios-swift---tableview.zip

    在iOS开发中,Swift语言是Apple官方推荐的编程语言,用于构建各种应用程序,包括界面丰富的应用。本压缩包“ios-swift---tableview.zip”显然关注的是如何在Swift中使用UITableView来创建动态、可滚动的数据展示视图...

    ios-电商类-------商品列表联动功能.zip

    在iOS开发中,商品列表联动功能是电商应用中常见的交互设计,它通常涉及到UITableView的多层次数据展示和联动更新。这个“ios-电商类-------商品列表联动功能.zip”压缩包文件包含了一个名为...

    ios-OC -- 用Collection加签喜好管理.zip

    在iOS开发中,Objective-C(OC)是一种广泛使用的编程语言,尤其在构建用户界面时。本项目"ios-OC -- 用Collection加签喜好管理.zip"聚焦于利用UICollectionView实现用户的喜好管理和频道管理功能,同时也涉及到了...

    swift-FDTemplateLayoutCell-模板自动布局单元格自动UITableViewCell高度计算

    1. 创建模板单元格:首先,你需要创建一个继承自`FDTemplateLayoutCell`的自定义单元格类。在这个类中,你需要设置好所有可能影响单元格高度的元素,如UILabel、UIImageView等,并进行相应的约束布局。 2. 注册...

    ios-自定义日历控件.zip

    在iOS开发中,自定义日历控件是一个常见的需求,特别是在设计具有个性化日程管理功能的应用时。"ios-自定义日历控件.zip"是一个包含自定义日历控件源代码的压缩包,适用于那些希望在自己的应用中提供独特日历体验的...

Global site tag (gtag.js) - Google Analytics