下面是我们即将要实现的效果。表视图的单元格是自定义的,单击其中的项目,弹出警告框。
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]; }
相关推荐
NULL 博文链接:https://alan-hjkl.iteye.com/blog/1677016
表视图是iOS开发中最重要的视图,它以列表的形式展示数据。表视图又一下部分组成: 表头视图:表视图最上边的视图 表脚视图:表视图最下边的视图 单元格(cell):表视图中每一行的视图 节(section):由多个单元格...
SwiftReorder是一个UITableView扩展,可让您将长按拖放重新排序添加到任何表视图中。 它功能强大,轻巧且可完全自定义。 特征 流畅的动画 自动边缘滚动 适用于多个表节 可自定义的阴影,缩放和透明效果 安装 可可豆...
在UIViewController内的UITableView中添加静态单元格。什么? 如果UITableView不在UITableViewController内,则不允许将UITableView的单元格设置为静态单元格,因此,不允许在UIViewController内使用Static-Cells ...
MKSlidingTableViewCell iOS 7样式的滑动表视图单元格。 通过在表格视图中使用MKSlidingTableViewCell,可以将任何视图设置为“抽屉”视图,然后设置显示量以指定拖动时滚动视图将粘贴的位置。 由于...
第四部分:定制UITableView表视图单元格 第五部分:如何处理UITableView中的行选择 第六部分:应用Property List强化你的Simple Table应用程序 第七部分:如何在Xcode 4.* 添加定制字体到iOS 应用程序中? 第八部分...
第四部分:定制UITableView表视图单元格 第五部分:如何处理UITableView中的行选择 第六部分:应用Property List强化你的Simple Table应用程序 第七部分:如何在Xcode 4.* 添加定制字体到iOS 应用程序中? 第八部分...
完整,工程下载可运行: 内容包括: 自定义单元格,导航视图页面切换,带索引的UITableView,单元格左右滑动动画实现,访问雅虎财经URL地址获取实时货币汇率,进行切换等。
第四部分:定制UITableView表视图单元格 第五部分:如何处理UITableView中的行选择 第六部分:应用Property List强化你的Simple Table应用程序 第七部分:如何在Xcode 4.* 添加定制字体到iOS 应用程序中? 第八部分...
第四部分:定制UITableView表视图单元格 第五部分:如何处理UITableView中的行选择 第六部分:应用Property List强化你的Simple Table应用程序 第七部分:如何在Xcode 4.* 添加定制字体到iOS 应用程序中? 第八部分...
第四部分:定制UITableView表视图单元格 第五部分:如何处理UITableView中的行选择 第六部分:应用Property List强化你的Simple Table应用程序 第七部分:如何在Xcode 4.* 添加定制字体到iOS 应用程序中? 第八部分...
ZJYTableViewCell 适用于iOS的具有不同自定义样式的表格视图单元格。 ZJYTableViewCellNone ZJYTableViewCellDefault ============ZJYTableViewCellNone 标题行(用于节中的第一个单元格) 页脚行(用于节中的最后一...
第四部分:定制 UITableView 表视图单元格 第五部分:如何处理 UITableView 中的行选择 第六部分:应用 Property List 强化你的 Simple Table 应用程序 第七部分:如何在 Xcode 4.* 添加定制字体到 iOS 应用程序中 第八...
一步一步学习+iOS+5+编程,由EntLib.com团队翻译整理第一部分...第三部分:iOS 编程向导:创建一个简单的表视图(Table View)应用程序 第四部分:定制UITableView表视图单元格第五部分:如何处理UITableView中的行选择
特征自动处理从笔尖或情节提要中创建的表格视图单元格可以与托管对象上下文和获取请求一起馈入的获取结果数据源,以使表视图保持同步。 拆分器数据源,可用于将多个数据源对象连接在一起表示一个对象的数据源,如果...