0

2つのカスタムセルを含むテーブルビューセクションがあります。他のアクションがトリガーされたときに、そのセクションのセルを交換したいと思います。

ここに画像の説明を入力してください

上のセルは下にスライドし、下のセルは上にスライドする必要があります。

私の現在のコードは空白のセルの領域になります

ここに画像の説明を入力してください

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:サブクラス化する代わりに、メソッドにカスタムセルを作成することで(サブビューを追加することで)、この問題を解決しました。アニメーション化されたセルスワッピングには、UITableViewmoveRowAtIndexPath:toIndexPath:方法(iOS 5 SDK)を使用しました。他の関連する方法も正常に機能します(必要なスワッピングアニメーションによって異なります)。この質問に投稿したコードチャンクは完全に変更されていません。

于 2012-09-29T08:44:16.847 に答える
0

必要なセルを返して、必要に応じ(UICell*) cellForRowAtIndexPathreloadSectionsアニメーション化できます。

于 2012-09-23T15:15:02.637 に答える
0

これを行うには、dataSourceでデータの順序を自分で変更する必要があります。次に、次のようにreloadDataを実行できます。

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

于 2012-09-23T15:21:16.130 に答える