UICollectionView初涉

iOS6.0之后,提供了UICollectionView。與UITableView相似,但是也有很多不同。

1、首先需要引入除了UICollectionViewDelegate,UICollectionViewDataSource之外的UICollectionViewDelegateFlowLayout。

2、在創(chuàng)建實例的時候,要注意

UICollectionView *collectionView = [UICollectionView new];

這樣生成會崩潰。必須是

//注意 UICollectionViewFlowLayout 不是UICollectionViewLayout。UICollectionViewFlowLayout是UICollectionViewLayout的子類。
UICollectionViewFlowLayout *collectionLayout = [UICollectionViewFlowLayout new];
UICollectionView *collectionView = [[UICollectionView alloc] initWithFrame:CGRectZero collectionViewLayout: collectionLayout];

UICollectionViewFlowLayout用來控制布局的。有一些常用的屬性:

@property (nonatomic) CGFloat minimumLineSpacing;//每行的距離
@property (nonatomic) CGFloat minimumInteritemSpacing;//每個cell的距離
@property (nonatomic) CGSize itemSize;//每個cell的大小,如果每個cell的大小不一樣,就不要設(shè)置這個屬性。
@property (nonatomic) UIEdgeInsets sectionInset;//每個section的相對距離
@property (nonatomic) UICollectionViewScrollDirection scrollDirection;//視圖滑動的方向

在創(chuàng)建完UICollectionView實例后,才能設(shè)置上面的屬性。否則是無效的。

3、UICollectionView 也有UITableView一樣的方法

- ( UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath;

在實現(xiàn)的時候,卻是不同的。UICollectionViewCell不需要判斷是否為空。在視圖初始化的時候,必須注冊Cell,系統(tǒng)生成在緩沖區(qū)中自動獲取。
錯誤:

UICollectionViewCell *collectionCell = [UICollectionViewCell new];
if (! collectionCell)
 {
           collectionCell = [collectionView dequeueReusableCellWithReuseIdentifier:@"collectionCell"];
 }

正確:

UICollectionViewCell *collectionCell = [collectionView dequeueReusableCellWithReuseIdentifier:@"collectionCell"];

4、很多時候是需要自定義UICollectionViewCell。在重寫創(chuàng)建方法的時候

-(id)init;//重寫這個方法是無效的。不會調(diào)用重寫的方法。

//應該使用-(id)initWithFrame:(CGRect)frame;

-(id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if(self)
    {
        //需要調(diào)用的方法。
    }
    return self;
}

自定義UICollectionViewFlowLayout一個新類,可以實現(xiàn)很多酷炫的動畫。例如:引導頁、輪播圖、瀑布流視圖...

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,425評論 4 61
  • 翻譯自“Collection View Programming Guide for iOS” 0 關(guān)于iOS集合視...
    lakerszhy閱讀 4,076評論 1 22
  • 一、UICollectionView介紹 UICollectionView和UICollectionViewCon...
    無灃閱讀 4,767評論 4 18
  • 什么是UICollectionView? UICollectionView是一種新的數(shù)據(jù)展示方式,簡單來說可以把他...
    凌峰Mical閱讀 43,693評論 11 201
  • 午加餐:面包晚水果:獼猴桃,梨 參考目標: 1份肉2份豆制品3份“新鮮”水果4份谷物/薯5份蔬菜,深綠色葉菜最好6...
    靜趣_兒童心理師閱讀 300評論 0 1

友情鏈接更多精彩內(nèi)容