[Mac] Xcode13とiOS15でTableViewのindexPath(for: cell)が正しくない場合がある

isPrefetchingEnabledをfalseにする

iOS15でindexPath(for: TableVideCell)でIndexPathが画面に表示されているものと違うものが取得できる場合があることがわかりました。
iOS15からTableViewにisPrefetchingEnabledが追加されています。
TableViewCellが画面に表示されていないときにも、TableViewがCellを要求するようになったようです。
そのため、indexPath(for...)にCellを引数に渡してIndexPathを取得する時にindexPathが変わってしまうようです。
ひとまず、isPrefetchingEnabledをfalseにする事で対応可能でした。

対策方法

TableViewに対して以下のようにパラメータを設定しておきます。

if #available(iOS 15.0, *) {
    tableView.isPrefetchingEnabled = false
}

0 件のコメント :

コメントを投稿