A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© yuanlingqi 中级黑马   /  2014-11-18 22:43  /  1621 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 yuanlingqi 于 2014-11-18 22:46 编辑
  1. 思路:主要通过实现协议UITableViewDataSource来完成
  2. UITableViewDataSource协议必须实现2个方法:
  3. 1.- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section;
  4. 该方法主要指定一个table里的section分几行展示;
  5. 2.- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;
  6. 该方法主要是控制每个section里每一行需要展示的数据、图片等等,indexPath的关键信息是section的下标以及行下标,通过这两个下标确定哪一行来显示数据;

  7. 另外该协议还有个可选的实现方法:
  8. - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView;
  9. 这个方法可以指定将表格分成多少部分,默认是1,下面来看下代码以及运行的效果图。
  10. 效果图如下:

  11. 代码如下:
  12. #import "CJPViewController.h"
  13. #import "CJPProduct.h"
  14. @interface CJPViewController ()<UITableViewDataSource>
  15. {
  16.     //对象数组
  17.     NSMutableArray *dataArray;
  18. }
  19. @end
  20. @implementation CJPViewController
  21. #pragma mark 初始化方法
  22. - (void)viewDidLoad
  23. {
  24.     [super viewDidLoad];
  25.     //初始化UITableView
  26.     UITableView *tableV = [[UITableView alloc]initWithFrame:self.view.frame style:UITableViewStylePlain];
  27.     tableV.frame = CGRectMake(0, 20, self.view.bounds.size.width, self.view.bounds.size.height);
  28.     //1. 指定数据源提供类
  29.     tableV.dataSource = self;
  30.     //2. 加入视图
  31.     [self.view addSubview:tableV];
  32.     //3. 初始化数据
  33.     [self dataArrayInit];
  34. }
  35. #pragma mark section头部标题
  36. - (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section{
  37.     return @"动物世界";
  38. }
  39. #pragma mark 设置section显示的行数
  40. - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
  41.     return dataArray.count;
  42. }
  43. #pragma mark 设置每行的显示数据
  44. - (UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
  45.     UITableViewCell *cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:nil];
  46.     CJPProduct *pro = dataArray[indexPath.row];
  47.     //设置名称
  48.     cell.textLabel.text = pro.title ;
  49.     //设置描述
  50.     cell.detailTextLabel.text = pro.desc;
  51.     //设置图片
  52.     cell.imageView.image = [UIImage imageNamed:pro.icon];
  53.     //设置右边箭头
  54.     cell.accessoryType = UITableViewCellAccessoryCheckmark;
  55.     return  cell;
  56. }
  57. #pragma mark 初始化商品数据
  58. - (void) dataArrayInit{
  59.     dataArray = [NSMutableArray array];
  60.     [dataArray addObjectsFromArray:@[
  61.                                      [CJPProduct productWithObjects:@"狗熊" :@"狗熊来了" :@"001.png"],
  62.                                      [CJPProduct productWithObjects:@"狗熊" :@"狗熊来了" :@"001.png"],
  63.                                      [CJPProduct productWithObjects:@"狗熊" :@"狗熊来了" :@"001.png"],
  64.                                      [CJPProduct productWithObjects:@"狗熊" :@"狗熊来了" :@"001.png"],
  65.                                      [CJPProduct productWithObjects:@"狗熊" :@"狗熊来了" :@"001.png"],
  66.                                      [CJPProduct productWithObjects:@"狗熊" :@"狗熊来了" :@"002.png"],
  67.                                      [CJPProduct productWithObjects:@"狗熊" :@"狗熊来了" :@"003.png"],
  68.                                      [CJPProduct productWithObjects:@"狗熊" :@"狗熊来了" :@"004.png"],
  69.                                      [CJPProduct productWithObjects:@"狗熊" :@"狗熊来了" :@"005.png"],
  70.                                      [CJPProduct productWithObjects:@"狗熊" :@"狗熊来了" :@"006.png"],
  71.                                      [CJPProduct productWithObjects:@"狗熊" :@"狗熊来了" :@"007.png"],
  72.                                      [CJPProduct productWithObjects:@"天猫" :@"天猫来了" :@"008.png"]]];
  73. }
  74. @end
复制代码

1.jpg (47.2 KB, 下载次数: 24)

1.jpg

评分

参与人数 1黑马币 +1 收起 理由
星河鹭起 + 1

查看全部评分

5 个回复

倒序浏览
  1. NSO
复制代码
回复 使用道具 举报
这么 牛气
回复 使用道具 举报
我之前用swift也搞过,3行代码解决!
回复 使用道具 举报
也还不错吧
回复 使用道具 举报
好厉害啊。。。你做的这些是进阶的视频里的吗?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马