1、UITableViewDataSource:委托协议
2、UITableViewDelegate:数据源协议
3、viewDidLoad-加载视图
4、- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
//行高 这个行高需要返回一个浮点类型的值,像100,55.1,26.18都可以,
5、-(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{间距 返回值类型原因同上
6、-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
//块数 这里的返回值类型不是CGFloat而是NSInteger了,因为块数是不可以写成小数的,像上面的行高啊,间距啊多一点,少一点可以更人性化,但是块数一旦人性化可是乱了套了,所以他必须是一个固定的整数。
7、- (NSInteger)tableView:(UITableView *)tableView2 numberOfRowsInSection:(NSInteger)section{
//行数 原因和上面一样
8、- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
//内容 这回返回的不一样了,UITableViewCell,说明需要返回一个UITableViewCell的值才不报错
9、indexPath :单元格当前所在位置
10、indexPath.row 第几行
11、indexPath.section 第几块
12、UITableViewcell的复用机制
本来我想的是复用的代码会复制粘贴就OK了,至于好好研究他一下就免了吧,但是有个人说UI Tableviewcell复用的运行机制是可以将来放在许多地方根据不同的逻辑需求而衍生出许许多多的提高运行速度、减少代码量的复用机制,所以我最后讲一下这个复用机制的原理:
首先我先讲一下为什么要用这个复用机制,其实他没有用,换句话说用处不大,因为网上说的是如果一个tableview里有几百个cell之后,代码就会卡死。。。玩呢!现在的95%的APP都正常好不好,谁TM有病啊,一个里面放几百个cell,有30个的都少。说这些话的人都失了志了吗?但是,这确实是个提高运行速度、减少代码量的好方法,我们要理性的看待这个问题,这么想,有了这几行代码,立刻让你的逼格装的高高的,是不是,下面让我们走近他好好看看:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
NSString *identifier = @"cell" ;//设置一个标识符identifier,他的名字叫做cell
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier] ;//寻找完全移出屏幕的一样的单元格,并添加标识符
//判断cell为nil则进入创建cell
if (!cell)
{
创建cell的时候需要标示符(Identifier)是因为,当该cell出屏幕的时候需要根据标示符(Identifier)放到对应的集合中.
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@"cell"
] ;
}
tableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero];//去掉多余的线条
cell.selectionStyle = UITableViewCellSelectionStyleNone;//点击它没反应