关于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;
}
一种或两种,或者其他更好的方式,以及特定的原始重用,输入重用并取出队列顺序的顺序
答案 0 :(得分:0)
你想选择一个选项。表视图数据源不应该在表视图单元格中添加或删除视图。那太乱了。
另一种选择是只有一个单元格子类,但是根据需要对子类进行代码隐藏和显示视图。我不会添加和删除视图。这种方式更复杂的代码和时间更昂贵的方式,当你在滚动时尝试获得高帧率时,这并不是很好。