`

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

 
阅读更多

        下面是我们即将要实现的效果。表视图的单元格是自定义的,单击其中的项目,弹出警告框。


  

        1.在Interface Builder,将UITableView添加到ViewController,绑定delegate和datasource到ViewController。

        2.在Interface Builder,将UITableViewCell添加到UITableView,再往UITableViewCell添加自定义控件,包括一个UIImageView和UILabel。

        小提醒:在命名Label和Image时,不要将Label命名为textLabel,或者将Image命名为imageView,因为textLabel和imageView属于UITableViewCell定义的变量,而我们现在要实现的是自定义单元格,要避免因为命名冲突而出现混乱。



 3.新建一个类MyTableViewCell,继承UITableViewCell。同时打开storyboard和MyTableViewCell.h,按住Control键,将上图的Label拖动到MyTableViewCell.h,按照下图,将其命名为label。同理操作Image,将其命名为image。完成后MyTableViewCell.h生成如下的代码。



 

 

#import <UIKit/UIKit.h>

@interface MyTableViewCell : UITableViewCell
@property (weak, nonatomic) IBOutlet UIImageView *image;
@property (weak, nonatomic) IBOutlet UILabel *label;

@end

 4.在Interface Builder中选中UITableViewCell,将class设置为MyTableViewCell。将identifier设置成myTableCell(在第6步的设置单元格方法中用到)。

 5.添加对UITableView的数据源初始化。图片和user_head.plist文件请见附件。

- (void)viewDidLoad
{
    [super viewDidLoad];
    [self initTableViewData];
	// Do any additional setup after loading the view.
}

-(void)initTableViewData{
    NSBundle *bundle = [NSBundle mainBundle];
    NSString *plistPath = [bundle pathForResource:@"user_head" ofType:@"plist"];
    dataArr = [[NSArray alloc] initWithContentsOfFile:plistPath];//dataArr为头文件定义的变量
    NSLog(@"table data count = %d",[dataArr count]);
}

 6.将数据源绑定到UITableView。

//列表的单元数目
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return [dataArr count];
}
//设置单元格
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"myTableCell";
    MyTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];//设置identifier为"myTableCell"
    
    NSUInteger row = [indexPath row];
    NSDictionary *rowDict = [dataArr objectAtIndex:row];
    cell.label.text =  [rowDict objectForKey:@"itemName"];
    
    NSString *imagePath = [rowDict objectForKey:@"itemImagePath"];
    cell.image.image = [UIImage imageNamed:imagePath];
    
    cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
    
    return cell;
}

 7.相应单击事件。

//选中Cell响应事件
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
    [tableView deselectRowAtIndexPath:indexPath animated:YES];//选中后的反显颜色即刻消失
    NSUInteger row = [indexPath row];
    NSDictionary *rowDict = [dataArr objectAtIndex:row];
    NSString *userName =  [rowDict objectForKey:@"itemName"];
    [self showDialog:@"userName" message:userName];
}

- (void)showDialog:(NSString *)title message:(NSString *)message{
    UIAlertView *alert = [[UIAlertView  alloc]
                                        initWithTitle:title
                                        message:message
                                        delegate:nil
                                        cancelButtonTitle:@"OK"
                                        otherButtonTitles:nil];
    [alert show];
}

 

 

 

  • 大小: 31 KB
  • 大小: 82 KB
  • 大小: 36.1 KB
  • 大小: 219.3 KB
分享到:
评论

相关推荐

    【一步一步学IOS5 】 定制UITableView表视图单元格

    本教程“一步一步学iOS5:定制UITableView表视图单元格”旨在帮助开发者深入理解如何根据需求自定义UITableView的单元格,提升用户界面的美观性和交互性。通过学习这个教程,我们可以掌握以下几个关键知识点: 1. *...

    IOS 自定义单元格

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

    iOS、UITableViewCell、自定义

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

    iOS-使用表格视图UITableView

    总结来说,"iOS-使用表格视图UITableView"项目涵盖了iOS开发中的基础列表展示技术,通过学习和实践,开发者可以掌握如何有效地利用UITableView展示和管理数据,以及如何通过自定义单元格和交互来提升用户体验。...

    自定义单元格

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

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

    这个压缩包“ios-表格视图,自定义UICollectionView实现.zip”显然是一个教学资源,旨在帮助初学者理解如何利用`UICollectionView`来创建类似于表格的视图,即所谓的瀑布流布局。 首先,我们要理解`...

    UITablevew自定义单元格

    在iOS开发中,`...综上所述,自定义 `UITableView` 单元格是iOS开发中的常见实践,它允许开发者灵活地构建符合应用需求的界面,提高用户体验。通过掌握这些知识点,你将能够自如地应对各种复杂的列表展示场景。

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

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

    ios-表视图,增加,删除数据.zip

    在iOS开发中,表视图(UITableView)是用于展示数据的一种常见组件,它允许用户滚动浏览和交互。在这个“ios-表视图,增加,删除数据.zip”项目中,新手开发者可能正在尝试实现如何在表视图中动态地添加、删除数据。...

    ios 表视图一

    在iOS开发中,表视图(UITableView)是用于展示数据列表的一种常见且强大的控件。它允许用户滚动浏览数据,并可以实现多种交互功能,如点击选中、滑动操作等。"ios 表视图一"这个主题主要是针对初学者,提供了一个...

    ios 表视图二

    通过以上步骤,你就能构建出一个能够从数据库读取数据并使用自定义单元格显示的iOS表视图应用。这个过程涵盖了iOS开发中的基础数据绑定、UI设计以及数据库操作,对于提升iOS开发技能非常有帮助。

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

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

    iOS中UITableView嵌套UITableView

    总之,实现iOS中的UITableView嵌套UITableView需要对UITableView的代理和数据源协议有深刻理解,同时涉及到自定义单元格、数据模型设计、事件处理、性能优化等多个方面。通过精心设计和编码,你可以创建出复杂而富有...

    IOS自定义UITableView框架(社区风格)

    利用UITableView的`tableHeaderView`和`tableFooterView`属性,可以添加这些自定义视图。 6. **交互处理**:为Cell添加手势识别器,以便在用户点击时触发相应的行为,如查看详细信息或进入评论页面。可以使用`...

    UITableView 删除单元格Cell Demo代码

    在iOS开发中,UITableView是...通过阅读和运行代码,你可以更直观地了解如何在Swift中实现UITableView单元格的删除功能。这是一个非常基础但至关重要的功能,对于任何涉及到列表数据展示的iOS应用来说都是不可或缺的。

    iOS开发之表视图详解

    在iOS开发中,表视图(UITableView)是一个至关重要的组件,它被广泛用于展示列表形式的数据。本篇文章将深入探讨表视图的各个方面,包括其组成、相关类、分类、单元格的样式以及数据源协议和委托协议。 首先,表...

    IOS 创建简单表视图

    在iOS开发中,表视图(UITableView)是用于展示数据的常见组件,它允许用户滚动浏览和交互。本实例将详细介绍如何创建一个简单的表视图,重点在于实现UITableViewDataSource协议中的核心方法。首先,让我们理解...

    ios的自定义表情键盘

    本文将深入探讨如何在iOS中实现一个自定义的表情键盘,包括表情控件、表情键盘以及UI弹出视图的设计与实现。 首先,我们要了解iOS中的键盘体系。iOS系统提供了多种键盘类型,如默认的ASCII键盘、数字键盘、电话键盘...

    IOS QQ表视图的Demo

    总之,"IOS QQ表视图的Demo"提供了一个关于如何创建弹性UITableView的实例,涉及到UITableView的数据源和代理协议、自定义滚动效果、以及在MRC环境下的内存管理。通过学习和研究这个Demo,开发者可以掌握更高级的...

Global site tag (gtag.js) - Google Analytics