8982


StoryBoardで、1画面に複数のUICollectionViewを配置しました。  
UICollectionViewのdataSourceとdelegateはStoryBoard上で  
OutletをViewControllerと紐付けてあります。

コードでは下記のようにUICollectionViewDelegate等を指定しています。

[code]

    class ViewController: UIViewController, UICollectionViewDelegate, UICollectionViewDataSource, UICollectionViewDelegateFlowLayout {
    
        func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
            return 20
        }
    }
    
[/code]

複数個のUICollectionViewがある場合、どちらのUICollectionViewのイベントであるかを  
指定できるのでしょうか？

また、UICollectionViewをカスタムクラスファイル(CustomCollectionView1.swift)というようなファイルを作って、それぞれで、デリゲート等を指定するのでしょうか？

よろしくお願いします。


CC BY-SA 3.0
2015-04-10T02:50:31.137
8981
2015-04-10T04:06:25.757
2015-04-10T04:06:25.757
7978
9183
question
ios swift
1画面に複数個のUICollectionViewを配置した場合のデリゲート設定


予めStoryBoard上もしくはviewDidLoad内等で個々のUICollectionViewのtagに識別用のタグを設定しておき、

[code]

    func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int
    
[/code]

等のデリゲートメソッドの引数のcollectionViewのtagの値を取り出すことによりどのUICollectionViewのイベントかを識別することができます。


CC BY-SA 3.0
2015-04-10T03:28:02.513
8982
2015-04-10T03:28:02.513
3227
8981
answer


Storyboard上のUICollectionViewインスタンスをViewControllerのIBOutletなプロパティに保持しておいて、デリゲートメソッドでは引数のcollectionViewがプロパティと同じオブジェクトを指しているかを比較するというはいかがでしょうか。


CC BY-SA 3.0
2015-04-10T04:05:40.807
8983
2015-04-10T04:05:40.807
7283
8981
answer