2016-05-26 29 views
0

私はVCとその内部にcollectionViewを持っています。コレクションビューを管理するすべてのコードは、そのVCに拡張されました。しかし、今私は別の異なるVCの中でこのコレクションのビューを使用する必要があり、私はこの拡張機能をコピー/ペーストしたくありません。私はUICollectionViewをサブクラス化しようとしましたが、内部でデリゲート/データソースメソッドを呼び出すことはありません。私の内線番号の署名は以下の通りです:コレクションビューを再利用

func scrollViewDidEndDecelerating(scrollView: UIScrollView) 
func numberOfSectionsInCollectionView(collectionView: UICollectionView) -> Int 
func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell 
func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize 

といくつかの私的な機能とプロパティがあります。どこにこのメソッドを置くべきですか、それらを頻繁に再利用したいのですか?

+0

これらの2つのクラスの拡張を行い、これらのメソッドを配置する別のオプションがあります。 –

+0

これを行う例はありますか?それはこれを行うための最も簡単な方法ですが、私はそれがどのように見えるべきか分かりません –

答えて

1

このロジックをすべて別のVCに入れ、VCを再利用する必要があります。コレクションビューを再利用するだけではありません。

このコレクションビューの「コピー」が必要な場合は、実際には子VCを追加し、VCからのビューをサブビューとして追加することになります。

+0

だから私はコンテナビューで私のcollectionViewを追加する必要がありますか?今では私のビュー内にただUICollectionViewを持っています –

+0

いいえ、あなたは 'UICollectionViewController'のサブクラスになることができるまったく新しいビューコントローラを持ち、サブビューとしてビュー(コレクションビュー)を追加します – Wain

+0

私はストーリーボードを使用しているので、あなたは何を言いたいのかわかりません:(違いを説明できますか?私の考えは、コンテナビューを作成してからUICOllectionVIewControllerを作成し、コンテナビューに埋め込みセグをリンクさせます。 –