我发现如果你将表格视图设置为编辑模式,在删除一行后滚动表格时,单元格编辑控件(左边的红色减号)处于随机状态(垂直或水平)滚动表格时,在其余单元格上。大概是因为我正在重复使用这样的细胞:
cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
如何强制编辑控件为每个单元格处于正确的状态?它应始终处于默认的水平状态,除非我点击它以删除单元格。
编辑:这是单元格代码:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *cellIdentifier = @"WhateverIdentifier";
MyCell *cell = nil;
//This IF statement fixes the problem, but then I'm not reusing the cells
if (!tableView.isEditing) {
cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
}
if (!cell) {
cell = [[[NSBundle mainBundle] loadNibNamed:@"MyCell" owner:self options:nil] objectAtIndex:0];
}
//customize cell
return cell;
}
答案 0 :(得分:7)
您是否在自定义单元格的[super prepareForReuse]
方法中调用了prepareForReuse
?
这解决了我的问题。
答案 1 :(得分:0)
我刚刚检查过UITableView,我很方便,但我没有看到这个问题。我正在使用dequeueReusableCellWithIdentifier:就像你一样(当然没有if语句)。你是否正在做一些特殊的滑动,或删除多行或什么?
(我会将此作为评论,但还不行。我们会在您解决问题后将其删除。)