iRSSの日記

はてなダイアリーiRSSの日記の続き

UICollectionViewメモ

チュートリアル

ソースコードをコピペで書きながら、全体像をつかめる
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ビデオ

基本編

Introducing Collection Views
Viewの構造、Delegateの仕組み

  • Cells
  • Supplementary views
  • Decoration views
応用編

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になる