見出し画像

Advances in UICollectionViewをみた #WWDC20

こちらの記事には非公開の情報が含まれているのでApple Developer Programに登録しNDAに合意している方のみ閲覧してください

 今日からWWDCのセッションの動画が公開されました。この記事ではAdvances in UICollectionViewをみたので雑にとったメモをまとめて公開します。

iOS 13から追加されたDiffable Data Sourceについて。iOS 14から折り畳みのUIが可能になった。セクションスナップショットを追加した。
新たなUIとしてList形式が追加された。

let configuration = UICollectionLayoutListConfiguration(appearance: .insetGrouped)
let layout = UICollectionViewCompositionalLayout.list(using: configuration)

リストを表示する際のサンプルコード。UICollectionListCellというクラスが追加された。詳細はLists in UICollectionViewというセッションにて。

Cell RegistrationついAPIが追加された。

let reg = UICollectionView.CellRegistration<MyCell, ViewModel> { cell, indexPath, model in
  // configure cell content 
}
let dataSource = UICollectionViewDiffableDataSource<S,I>(collectionView: collectionView) {
                    collectionView, indexPath, item -> UICollectionViewCell in
  return collectionView.dequeueConfiguredReusableCell(using: reg, for: indexPath, item: item)
}

サンプルコード。(去年ぐらいからViewModelという単語が出るようになって少し気になる)

セルの内容を表現するCell Configurationというクラスが追加。

var contentConfiguration = UIListContentConfiguration.cell()
contentConfiguration.image = UIImage(systemNamed:"hammer")
contentConfiguration.text = "Ready. Set. Code"
cell.contentConfiguration = contentConfiguration

いわゆるViewModelっぽい気もする。こちらはModern Cell Configurationという別のセッションにて。

Apple公式のサンプルコードはこちら。

まとめ

リストがどこまで利用可能なのか、UITableViewが不要になるのか?が気になりました。サンプルコードもあるので後で試したい。(ちなみにDeveloperというアプリで字幕もコードもコピーできるようになってて最高(もはやこういうメモすら不要に感じる))


この記事が気に入ったらサポートをしてみませんか?