0

我有一个带有两个自定义单元格的表格视图部分。当触发其他一些操作时,我想交换该部分中的单元格。

在此处输入图像描述

顶部单元格应滑动到底部,底部单元格应滑动到顶部。

我当前的代码导致空白单元格区域

在此处输入图像描述

返回时cellForRowAtIndexPath

    // flag is set to YES when reloadSections is called 
    if (flag) {             

        if (self.currentAddressingMode == AddressingModeToSelf) {

                if (indexPath.row == 0) {
                    return self.outNumberCell;
                }
                else if (indexPath.row == 1) {
                    return self.inNumberCell;
                }

            }
            else if (self.currentAddressingMode == AddressingModeToCounterpart) {

                if (indexPath.row == 0) {
                    return self.inNumberCell;
                }
                else if (indexPath.row == 1) {
                    return self.outNumberCell;
                }
            }
        }

有解决办法吗?

4

3 回答 3

1

我通过在cellForRowAtIndexPath:方法中创建自定义单元格(通过向它们添加子视图)而不是子类化来解决了这个问题。对于动画单元格交换,我使用了UITableView'smoveRowAtIndexPath:toIndexPath:方法(iOS 5 SDK)。其他相关方法也可以正常工作(这取决于您需要的交换动画)。我发布到这个问题的代码块保持完全不变。

于 2012-09-29T08:44:16.847 回答
0

您可以返回所需的单元格,(UICell*) cellForRowAtIndexPath然后reloadSections根据需要设置动画。

于 2012-09-23T15:15:02.637 回答
0

为此,您需要自己更改数据源中数据的顺序。然后你可以这样做 reloadData 像这样:

[_tableView reloadSections:[NSIndexSet indexSetWithIndex:0] withRowAnimation:UITableViewRowAnimationFade];

于 2012-09-23T15:21:16.130 回答