//// ViewController.m
// D1-SingleGroupTableView//
// Created by CE on 16/4/15.
// Copyright © 2016年 CE. All rights reserved.
//#import "ViewController.h"@interface ViewController ()//数据源
@property NSMutableArray *dataSource;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
//创建数据
[self createDataSource];
//创建表格视图
[self createTableView];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (BOOL)prefersStatusBarHidden {
return YES;
}
- (void)createDataSource {
self.dataSource = [NSMutableArray array];
for (NSUInteger i=0; i<50; i++) {
NSString *str = [NSString stringWithFormat:@"科密%.2lu号", i+1];
[self.dataSource addObject:str];
}
}
- (void)createTableView {
UITableView *tableView = [[UITableView alloc] initWithFrame:self.view.bounds];
//设置数据源代理
tableView.dataSource = self;
//注册cell类型以及复用标识
[tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:@"cellId"];
[self.view addSubview:tableView];
}
#pragma mark - UITableViewDataSource
//有多少行
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return self.dataSource.count;
}
//哪一组的哪一行
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
//面试
//表格视图内部维护了一个cell的复用队列,每次需要新的cell时,可以先从队列中根据复用标识寻找是否有空闲的cell,若有则直接出列使用无需创建新的;若没有可用cell则需要创建新的。
//表格视图上的cell离开显示区域就会自动放入复用队列
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cellId"];
#if 0
//若不想判断,则前面需要注册cell类型及同复用标识
if (!cell) {
static int count = 0;
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"cellId"];
count++;
printf("创建cell%d\n", count);
}
#endif
cell.textLabel.text=self.dataSource[indexPath.row];
return cell;
}
@end