20

UITableView の遅延読み込みを行っているため、画像が更新されるたびに個々の行をリロードしようとしています。しかし、私は奇妙な問題に遭遇しています。

電話すると、

    [self.bubbleTableView reloadRowsAtIndexPaths:[NSArray arrayWithObjects:indexPath, nil] withRowAnimation:UITableViewRowAnimationNone];

また

    [self.bubbleTableView reloadSections:[NSIndexSet indexSetWithIndex:[indexPath section]] withRowAnimation:UITableViewRowAnimationNone];

アニメーションなしと具体的に言うと、アニメーションは依然としてアニメーションであり、アニメーションはセル全体を占めるイメージであり、通常のサイズに急速に縮小します。また、他のアニメーションに変更すると、どの設定でも同じアニメーションになります。

これらのいずれかをコメントアウトして reloadData を使用するだけで問題なく動作しますが、更新の必要がないセルを再更新するというパフォーマンス上の理由から reloadData を実行したくありません。

ありがとう!

4

4 に答える 4

48

ここに答えがありました

[UIView setAnimationsEnabled:NO];
[self.bubbleTableView reloadSections:[NSIndexSet indexSetWithIndex:[indexPath section]] withRowAnimation:UITableViewRowAnimationNone];
[UIView setAnimationsEnabled:YES];

わたしにはできる。

アップデート。@Şafak-gezer によるブロックと同じ

[UIView performWithoutAnimation:^{
    [self.bubbleTableView reloadSections:[NSIndexSet indexSetWithIndex:[indexPath section]] withRowAnimation:UITableViewRowAnimationNone];
}];

迅速

UIView.performWithoutAnimation {
            self.bubbleTableView.reloadSections(NSIndexSet(index: indexPath.section), withRowAnimation: UITableViewRowAnimation.None)
        }
于 2014-06-24T11:09:20.627 に答える
0

cellForRowAtIndexPath:関心のあるセルのみを更新するために使用します。

于 2013-05-20T14:39:33.843 に答える
-3

iOSシミュレーターでこれが起こっていることがわかりました。数回リロードした後、アニメーションなしで正常に動作しました。シミュレーターの単なるバグである可能性があります。

于 2013-07-03T04:14:15.067 に答える