Xcode7.0 UICollectionView

とまチョップスタンプをSwiftで書くため色々やっていて一番ハマったところ。
結局原因はよくわからず。

問題は単純
どうしてもUICollectionViewが表示できない

環境:
Xcode7.0
Swift
iOS9.0 iPhone Simulator
Storyboard使用

1.まずいつも通りUICollectionViewをViewControllerの上に置いてIBOutletで接続
2.UICollectionViewDelegate, UICollectionViewDataSourceを追加
3.collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int でセクション内のアイテムの数を設定
4.collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell でアイテムの中身を設定
5.Run

さあこれで表示できる、と思ってUICollectionViewが表示されるところまで行くと、そこで落ちた。

*** Terminating app due to uncaught exception ‘NSInvalidArgumentException’, reason: ‘UICollectionView must be initialized with a non-nil layout parameter’

layoutがnilだよ!って怒られました。
いままでStoryboardを使っていてこれは出たことがなかったのですが、どうやらFlowLayoutを設定しなければならない模様。(というかStoryboardでFlowLayoutの設定がされてると思ってました。)

registerClass(UICollectionViewCell, forCellWithReuseIdentifier: “ReuseIdentifier”)を入れてると動かないよー、というのも見かけましたが、そもそも最初から入れていなかったので原因はそれでもなく…

ちなみにStoryboardでいろいろレイアウトの設定をしてみたところ、全く反映されませんでした。
ですが、こちらはよく調べなかったため何か方法があるかも。

で、とりあえず

myCollectionView.collectionViewLayout = UICollectionViewFlowLayout()

と入れてみる

動いた。
とりあえず表示はされた。

うぬぬ。よくわからぬ。

この後、viewWithTag( )が動かなかったのですが、そちらはあきらめました


カテゴリ: アプリ制作. Bookmark the permalink.

Comments are closed.