黑马程序员技术交流社区
标题:
UITableView-简单购物列表的实现
[打印本页]
作者:
yuanlingqi
时间:
2014-11-18 22:43
标题:
UITableView-简单购物列表的实现
本帖最后由 yuanlingqi 于 2014-11-18 22:46 编辑
思路:主要通过实现协议UITableViewDataSource来完成
UITableViewDataSource协议必须实现2个方法:
1.- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section;
该方法主要指定一个table里的section分几行展示;
2.- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;
该方法主要是控制每个section里每一行需要展示的数据、图片等等,indexPath的关键信息是section的下标以及行下标,通过这两个下标确定哪一行来显示数据;
另外该协议还有个可选的实现方法:
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView;
这个方法可以指定将表格分成多少部分,默认是1,下面来看下代码以及运行的效果图。
效果图如下:
代码如下:
#import "CJPViewController.h"
#import "CJPProduct.h"
@interface CJPViewController ()<UITableViewDataSource>
{
//对象数组
NSMutableArray *dataArray;
}
@end
@implementation CJPViewController
#pragma mark 初始化方法
- (void)viewDidLoad
{
[super viewDidLoad];
//初始化UITableView
UITableView *tableV = [[UITableView alloc]initWithFrame:self.view.frame style:UITableViewStylePlain];
tableV.frame = CGRectMake(0, 20, self.view.bounds.size.width, self.view.bounds.size.height);
//1. 指定数据源提供类
tableV.dataSource = self;
//2. 加入视图
[self.view addSubview:tableV];
//3. 初始化数据
[self dataArrayInit];
}
#pragma mark section头部标题
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section{
return @"动物世界";
}
#pragma mark 设置section显示的行数
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
return dataArray.count;
}
#pragma mark 设置每行的显示数据
- (UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
UITableViewCell *cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:nil];
CJPProduct *pro = dataArray[indexPath.row];
//设置名称
cell.textLabel.text = pro.title ;
//设置描述
cell.detailTextLabel.text = pro.desc;
//设置图片
cell.imageView.image = [UIImage imageNamed:pro.icon];
//设置右边箭头
cell.accessoryType = UITableViewCellAccessoryCheckmark;
return cell;
}
#pragma mark 初始化商品数据
- (void) dataArrayInit{
dataArray = [NSMutableArray array];
[dataArray addObjectsFromArray:@[
[CJPProduct productWithObjects:@"狗熊" :@"狗熊来了" :@"001.png"],
[CJPProduct productWithObjects:@"狗熊" :@"狗熊来了" :@"001.png"],
[CJPProduct productWithObjects:@"狗熊" :@"狗熊来了" :@"001.png"],
[CJPProduct productWithObjects:@"狗熊" :@"狗熊来了" :@"001.png"],
[CJPProduct productWithObjects:@"狗熊" :@"狗熊来了" :@"001.png"],
[CJPProduct productWithObjects:@"狗熊" :@"狗熊来了" :@"002.png"],
[CJPProduct productWithObjects:@"狗熊" :@"狗熊来了" :@"003.png"],
[CJPProduct productWithObjects:@"狗熊" :@"狗熊来了" :@"004.png"],
[CJPProduct productWithObjects:@"狗熊" :@"狗熊来了" :@"005.png"],
[CJPProduct productWithObjects:@"狗熊" :@"狗熊来了" :@"006.png"],
[CJPProduct productWithObjects:@"狗熊" :@"狗熊来了" :@"007.png"],
[CJPProduct productWithObjects:@"天猫" :@"天猫来了" :@"008.png"]]];
}
@end
复制代码
1.jpg
(47.2 KB, 下载次数: 22)
下载附件
2014-11-18 22:42 上传
作者:
邵起
时间:
2014-11-19 10:15
NSO
复制代码
作者:
万雷
时间:
2014-11-19 12:27
这么 牛气
作者:
breaking1800
时间:
2014-11-19 13:23
我之前用swift也搞过,3行代码解决!
作者:
3-_-3
时间:
2014-11-20 11:46
也还不错吧
作者:
冰点
时间:
2014-11-20 18:00
好厉害啊。。。你做的这些是进阶的视频里的吗?
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2