チュートリアル
ソースコードをコピペで書きながら、全体像をつかめる
Flickrのビューアを作るサンプル
http://www.raywenderlich.com/22324/beginning-uicollectionview-in-ios-6-part-12
http://www.raywenderlich.com/22417/beginning-uicollectionview-in-ios-6-part-22
Flowレイアウトの方法まで、習得できる。カスタムレイアウトには触れない。
WWDC 2012ビデオ
応用編
Advanced Collection Views and Building Custom Layouts
カスタムレイアウトで、かっちょいい、見せ方をさせる方法。
- UICollectionViewFlowLayoutのサブクラスを作る - 例:PinchLayout
- UICollectionViewLayoutAttributesで書くcellを変形できる
- UICollectionViewLayoutのサブクラスを作る
- (NSArray*)layoutAttributesForElementsInRect:(CGRect)rect - 指定されたのRect内のcellのUICollectionViewLayoutAttributesを配列で返す
- (UICollectionViewLayoutAttributes*)layoutAttributesForItemAtIndexPath:(NSIndexPath *)indexPath - 指定されたcellのUICollectionViewLayoutAttributesを返す
- invalidateLayoutメソッドが呼ばれると、レイアウト再構築ができる
- (CGPoint)targetContentOffsetForProposedContentOffset:(CGPoint)proposedContentOffset withScrollingVelocity:(CGPoint)velocity - スクロールの停止位置を決めることができる。カバーフローなら、特定のジャケットを中心にして止めたい。そんなときにつかえる
- CircleLayoutのソースをみると、サブクラスでオーバーライトすべきメソッドが理解できそう
+ indexPathForItem:inSection:
UICollectionView の NSIndexPathは rowじゃなくて itemになる