UITableView重用问题

时间:2016-01-29 03:08:40

标签: ios uitableview

关于UITableView重用,当有多个不同的Cell时,使用不同的标识符来区分好或使用标识符和Cell子视图删除,再添加内容好,如果Cell很多的情况下,这些可重用,是什么样的具体的访问规则,当队列中的标识符位置是如何删除主答案时,谢谢

_testTableView = [[UITableView alloc] initWithFrame:self.view.bounds style:UITableViewStylePlain];
_testTableView.dataSource = self;
_testTableView.delegate = self;
[_testTableView setRowHeight:80.];
[self.view addSubview:_testTableView];

[_testTableView registerClass:[TestTableViewCell class] forCellReuseIdentifier:testKeyOne];
[_testTableView registerClass:[TestTwoTableViewCell class] forCellReuseIdentifier:testKeyTwo];

//单向      - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

//one
if(indexPath.row < 15){

    TestTableViewCell * oneCell = [tableView dequeueReusableCellWithIdentifier:testKeyOne forIndexPath:indexPath];

    return oneCell;

}else{

    TestTwoTableViewCell * oneCell = [tableView dequeueReusableCellWithIdentifier:testKeyTwo forIndexPath:indexPath];

    return oneCell;

}

return nil;

}

双向:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

UITableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:testKeyOne forIndexPath:indexPath];

for(UIView * view in cell.subviews){

    [view removeFromSuperview];

}

//[cell addSubview:];

return cell;

}

一种或两种,或者其他更好的方式,以及特定的原始重用,输入重用并取出队列顺序的顺序

1 个答案:

答案 0 :(得分:0)

你想选择一个选项。表视图数据源不应该在表视图单元格中添加或删除视图。那太乱了。

另一种选择是只有一个单元格子类,但是根据需要对子类进行代码隐藏和显示视图。我不会添加和删除视图。这种方式更复杂的代码和时间更昂贵的方式,当你在滚动时尝试获得高帧率时,这并不是很好。