4

我发现如果您将表格视图设置为编辑模式,则在删除一行后滚动表格时,单元格编辑控件(左侧的红色减号)在其余部分处于随机状态(变为垂直或水平)滚动表格时的单元格。大概是因为我正在重用这样的单元格:

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;
}
4

2 回答 2

7

您是否正在调用自定义单元格[super prepareForReuse]的方法prepareForReuse

这解决了我的问题。

于 2013-10-21T12:47:18.923 回答
0

我刚刚签入了一个方便的 UITableView,但我没有看到这个问题。我正在使用 dequeueReusableCellWithIdentifier: 就像你一样(当然没有 if 语句)。您是否正在通过滑动或删除多行或其他方式做一些特别的事情?

(我会发表评论,但还不能。一旦你解决了你的问题,我会删除它。)

于 2013-06-19T20:56:44.100 回答