静的セルでUITableViewを使用します。私が使うならreloadData
、何よりも大丈夫です。
私が試しreloadRowsAtIndexPaths
てみると、行が非表示になります。tableViewを上下にドラッグすると行が表示されます(セルが更新されたとき)。
静的セルでUITableViewを使用します。私が使うならreloadData
、何よりも大丈夫です。
私が試しreloadRowsAtIndexPaths
てみると、行が非表示になります。tableViewを上下にドラッグすると行が表示されます(セルが更新されたとき)。
テーブルセルが静的である場合(つまり、現在表示されているものを置き換えるために同じセルオブジェクトを使用している場合)、表示されているのは遷移アニメーションのアーティファクトです。
このように考えてください。UITableViewAnimationOptionFadeを設定するとします。セルを置き換える場合、置き換えるセル(この場合はまったく同じオブジェクト)にフェードインアニメーションが追加されます。次に、置き換えられるセル(これもすべて同じオブジェクトです)にフェードアウトアニメーションが追加されます。最後に、セルは実際にはそこにありますが、フェードアウトアニメーションによってそのセルオブジェクトが非表示になっているため、セルは非表示になっています。
置換セルが置換されるセルとは異なるオブジェクトである非静的テーブルビューでは、アニメーションが2つの異なるオブジェクトに追加されるため、これは問題ではありません。
私も同じ問題を抱えていました、それはバグのようです。いくつか実験しましたが、アニメーションオプションをに設定しても問題は発生しませんUITableViewRowAnimationNone
。そのオプションをに設定すると、他にも興味深いことが起こりますUITableViewRowAnimationTop
。
アニメーションを削除してこれを解決しました
tableView.reloadRows(at: [yourIndexPath], with: UITableView.RowAnimation.none)
これがこれを探している人に役立つことを願っています。