iOSエンジニアのつぶやき

毎朝8:30に iOS 関連の技術について1つぶやいています。まれに釣りについてつぶやく可能性があります。

DifferenceKit で reload した時に Cell がうまく反映されない

DifferenceKit という UITableView 及び UICollectionView の差分更新ライブラリを使用していた時に、CollectionView の追加 Section も含めた changeSet を reload した時に主に iOS11系で(iPhone8で確認)うまく Cell が表示されないという問題に遭遇していました。具体的な CollectionView の状態としては下記のような感じで、セクションアイテムが空ではない場合にのみセクションを追加していました。

  • scrollDirection: .horizontal
  • estimatedItemSize: automaticSize

解決策

解決策としては、CollectionView のセクションを常時設置するように変更し、reload では Cell のアイテムのみ batchUpdate で更新できるようにしたところ,iOS11系でもうまく Cell が表示されるようになりました。 DifferenceKit の問題なのか、システムの問題なのかは現在のところ不明なので、分かり次第追記したいと思います。UICollectionView はなんだかんで、バグが多いので取り扱いが難しいです、😅

その他の記事

yamato8010.hatenablog.com

yamato8010.hatenablog.com

yamato8010.hatenablog.com