本帖最后由 竹林风 于 2018-12-5 18:15 编辑
文章导航
上篇中初识了UITableView,今天就来看看怎么使用动态数据源来显示我们的数据吧!
直接上代码 :
[Objective-C] 纯文本查看 复制代码 #import "firstVC.h"
@interface firstVC ()<UITableViewDelegate,UITableViewDataSource>{
NSArray *aryData;
}
@end
@implementation firstVC
- (void)viewDidLoad {
[super viewDidLoad];
self.view.backgroundColor = [UIColor yellowColor];
self.title = @"水果";
aryData = @[@{@"icon":@"apple",@"name":@"苹果"},@{@"icon":@"banana",@"name":@"香蕉"},@{@"icon":@"orange",@"name":@"桔子"},@{@"icon":@"pear",@"name":@"梨"},@{@"icon":@"peach",@"name":@"桃子"}];
UITableView *tableView =[[UITableView alloc]initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height) style:UITableViewStylePlain];
// 设置数据源代理
tableView.delegate = self;
tableView.dataSource = self;
[self.view addSubview:tableView];
}
//数据源代理方法
/**
* 告诉tableView一共有多少组数据,默认为1组
*/
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
return 1;
}
/**
* 告诉tableView第section组有多少行
*/
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
return aryData.count;
}
/**
* 告诉tableView第indexPath行显示怎样的cell
*/
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
// 0.重用标识
// 被static修饰的局部变量:只会初始化一次,在整个程序运行过程中,只有一份内存
static NSString *ID = @"cell";
// 1.先根据cell的标识去缓存池中查找可循环利用的cell
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:ID];
// 2.如果cell为nil(缓存池找不到对应的cell)
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:ID];
}
// 3.覆盖数据
NSDictionary *dic = aryData[indexPath.row];
cell.imageView.image = [UIImage imageNamed:dic[@"icon"]];
cell.textLabel.text = dic[@"name"];
return cell;
}
/**
* 告诉tableView第section组的头部标题
*/
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section{
return @"水果分类";
}
/**
* 告诉tableView第section组的尾部标题
*/
- (NSString *)tableView:(UITableView *)tableView titleForFooterInSection:(NSInteger)section{
return @"尾部标题:这些都是我爱吃的哦!你呢?";
}
运行效果:
快动手试试吧!
附件:
Test-UITableView.zip
(153.38 KB, 下载次数: 0)
|