7

静的セルでUITableViewを使用します。私が使うならreloadData、何よりも大丈夫です。

私が試しreloadRowsAtIndexPathsてみると、行が非表示になります。tableViewを上下にドラッグすると行が表示されます(セルが更新されたとき)。

4

3 に答える 3

11

テーブルセルが静的である場合(つまり、現在表示されているものを置き換えるために同じセルオブジェクトを使用している場合)、表示されているのは遷移アニメーションのアーティファクトです。

このように考えてください。UITableViewAnimationOptionFadeを設定するとします。セルを置き換える場合、置き換えるセル(この場合はまったく同じオブジェクト)にフェードインアニメーションが追加されます。次に、置き換えられるセル(これもすべて同じオブジェクトです)にフェードアウトアニメーションが追加されます。最後に、セルは実際にはそこにありますが、フェードアウトアニメーションによってそのセルオブジェクトが非表示になっているため、セルは非表示になっています。

置換セルが置換されるセルとは異なるオブジェクトである非静的テーブルビューでは、アニメーションが2つの異なるオブジェクトに追加されるため、これは問題ではありません。

于 2013-09-10T07:37:57.320 に答える
9

私も同じ問題を抱えていました、それはバグのようです。いくつか実験しましたが、アニメーションオプションをに設定しても問題は発生しませんUITableViewRowAnimationNone。そのオプションをに設定すると、他にも興味深いことが起こりますUITableViewRowAnimationTop

于 2013-01-29T18:34:54.830 に答える
1

アニメーションを削除してこれを解決しました

tableView.reloadRows(at: [yourIndexPath], with: UITableView.RowAnimation.none)

これがこれを探している人に役立つことを願っています。

于 2019-01-10T23:44:18.180 に答える