コレクションビューセルの一部としてコレクションビューを持つことに興味がありますが、何らかの理由でこれがどのように行われるかわかりません。セルコレクションビューに必要なメソッドをどこに実装しますか?
4 に答える
Ash Furrow が書いた記事で、を のUICollectionView
中に入れる方法が説明されていUITableViewCell
ます。内で使用する場合も、基本的には同じ考え方UICollectionViewCell
です。
これはこの回答には遅すぎますが、他の人に役立つかもしれません。これはUICollectionView
内の例ですUICollectionViewCell
。
を持つことから始めましょうmainCollectionView
。次に、このコレクションの各セルで、新しいUICollectionView
適切な場所を作成して初期化します。これは、UICollectionView の次のデリゲートにあります。
func collectionView(collectionView: UICollectionView, willDisplayCell cell: UICollectionViewCell, forItemAtIndexPath indexPath: NSIndexPath)
たとえば、MainCollectionViewCell
ここを初期化しMainCollectionViewCell
、ロジックを処理して新しいUICollectionView
guard let collectionViewCell = cell as? MainCollectionViewCell else { return }
collectionViewCell.delegate = self
let dataProvider = ChildCollectionViewDataSource()
dataProvider.data = data[indexPath.row] as NSArray
let delegate = ChildCollectionViewDelegate()
collectionViewCell.initializeCollectionViewWithDataSource(dataProvider, delegate: delegate, forRow: indexPath.row)
collectionViewCell.collectionViewOffset = storedOffsets[indexPath.row] ?? 0
MainCollectionViewCell
これは、新しいを作成するイニシャライザですUICollectionView
func initializeCollectionViewWithDataSource<D: protocol<UICollectionViewDataSource>,E: protocol<UICollectionViewDelegate>>(dataSource: D, delegate :E, forRow row: Int) {
self.collectionViewDataSource = dataSource
self.collectionViewDelegate = delegate
let flowLayout = UICollectionViewFlowLayout()
flowLayout.scrollDirection = .Horizontal
let collectionView = UICollectionView(frame: self.bounds, collectionViewLayout: flowLayout)
collectionView.registerClass(UICollectionViewCell.self, forCellWithReuseIdentifier: reuseChildCollectionViewCellIdentifier)
collectionView.backgroundColor = UIColor.whiteColor()
collectionView.dataSource = self.collectionViewDataSource
collectionView.delegate = self.collectionViewDelegate
collectionView.tag = row
self.addSubview(collectionView)
self.collectionView = collectionView
collectionView.reloadData()
}
それが役立つことを願っています!!
私はこれの例を作成し、github に入れました。UICollectionView
内での使用を示しますUICollectionViewCell
。
https://github.com/irfanlone/Collection-View-in-a-collection-view-cell