質問: ### 前提・実現したいこと Qiitaのこのページに記載されている内容を実現したいのですが、 UICollectionViewでタグが左寄せに並んでいるようなレイアウトを実現する http://qiita.com/kazuhiro4949/items/03bc3d17d3826aa197c0 UICollectionViewFlowLayoutを割り当てる方法がわかりません。 「UICollectionViewLayout」でしたらStoryBoardで一応選択できますが、 Swift 3でのUICollectionViewLayoutの書き方も、 ネットで日本語の情報が少ないため、さっぱり理解できません。 本もいくつか購入してみたのですが、そもそも「UICollectionView」に関する 解説が少なかったりして、もうお手上げの状態です。 ### 教えてください UICollectionViewでタグが左寄せに並んでいるようなレイアウトを実現する http://qiita.com/kazuhiro4949/items/03bc3d17d3826aa197c0 のページを実現・理解するための情報を教えてください。 上記のページを実現するための手順や、解説のページの情報や、 UICollectionViewLayoutやUICollectionViewFlowLayoutの使い方を解説したページなどがありましたら、 教えていただきたいです。 どんな細かな情報でも、教えていただけたらありがたいです。 英語のページでも、どうにかがんばって読みたいと思います。 どうか、よろしくお願いいたします。 ### 環境 Swift 3 Xcode 8.3.3 OS X Sierra 10.12.6
回答: Swift3を勉強する気がないのであれば、Swift2で開発すればいいのではないでしょうか? 【追記】 コメントへの返信ですが、見にくくなるのでこちらに書きます。 リファレンスを見る/探すのは基本です。 (いちいちリンクを張っていますが、Xcodeで見ることが出来る情報です) ### indexPath > > let indexPath = NSIndexPath(forItem:count, inSection:0) // <= ここでエラー > > > itemとsectionによる初期化は NSIndexPath(item:section:) ですので、 ``` let indexPath = NSIndexPath(item: count, section: 0) ``` となりますが、UICollectionViewLayoutAttributes(forCellWith:)に渡すのはNSIndexPathではなくIndexPathに変わっていますのでIndexPath(item:section:)を使います。 ``` let indexPath = IndexPath(item: count, section: 0) ``` ### collectionViewContentSize > > override func collectionViewContentSize() -> CGSize { // <= ここでエラー > > > collectionViewContentSizeを見ると、func(関数)ではなくvar(変数/プロパティ)に変わっていますので、 ``` override var collectionViewContentSize: CGSize { //(中略) return CGSize(width:allWidth, height:allHeight) } ``` でいけると思います。 ### Storyboard > > Storyboard=>Collection View=>Layoutをカスタムにして、Classにわりあてようとしたのですが、 > > でませんでした。 > > > TextLayoutを割り当てようとしているんですよね?普通なら、Classのところに`T`と入力した時点で補完されるはずですが..。ひとまず、エラーが無くなってからもう一度試してみて下さい。