日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

使用uicollectionView时需要注意的问题

發布時間:2023/11/30 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用uicollectionView时需要注意的问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.UICollectionView使用流水布局——UICollectionViewFlowLayout時,需要滿足條件:

每個item(即cell)的大小是一樣的,不僅是寬度,還有高度。這樣,當collectionview的寬度發生變化時,item能將其動態填充。
itemSize即為每個cell的尺寸。

collectionview初始化時必須設置一個非空的layout。所以若想使用類似

UICollectionViewController *ctrl = [[UICollectionViewController alloc]init];

來初始化一個collectionviewcontroller,那么就需要重寫它的init方法

-(id)init{UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc]init];layout.itemSize = CGSizeMake(100,100);if(self = [super initWithCollectionViewLayout:layout]){//這里不用寫內容 }return self; }

設置item之間的間距時,可以用以下,并且只適合UICollectionViewFlowLayout

//垂直方向間距 layout.minimumLineSpacing = 0; //水平方向間距 layout.minimumInteritemSpacing = 0;

?

2.collectionview中的布局方法

- (NSArray *)layoutAttributesForElementsInRect:(CGRect)rect{}

中返回值是一個數組,存放的是rect范圍內所有cell的布局屬性,即frame。
其中,rect是一個矩形框,它表示的是collectionview的大小位置。即定義了collectionview的大小,那么rect也是返回的該區域內的cell布局。如:

@interface LineLayout(){UIView *_view; }-(NSArray<UICollectionViewLayoutAttributes *> *)layoutAttributesForElementsInRect:(CGRect)rect{//取出父類算出的布局屬性NSArray *attsArray = [super layoutAttributesForElementsInRect:rect];if (!_view) {UIView *view = [[UIView alloc]initWithFrame:rect];view.backgroundColor = [UIColor orangeColor];_view = view;[self.collectionView addSubview:view];}return attsArray; }

而collectionview的定義為

_collectionView = [[UICollectionView alloc]initWithFrame:CGRectMake(0, 100, mScreenWidth, 300) collectionViewLayout:circle];

效果為:

當collectionview這樣設置時

_collectionView = [[UICollectionView alloc]initWithFrame:CGRectMake(0, 100, mScreenWidth/2, 300) collectionViewLayout:circle];

效果為

?

3.在初次使用Masonry時,若報類似

Demo-collectionviewExample[4443:172886] *** Assertion failure in -[MASViewConstraint install], /Users/Suning/Desktop/study/Demo-collectionviewExample/Pods/Masonry/Masonry/MASViewConstraint.m:345

錯誤,原因在于
使用Masonry為自定義view添加約束時,得先把自定義view添加到父視圖上。

上圖就是錯誤用法,將兩個位置調換下即可。

轉載于:https://www.cnblogs.com/Apologize/p/5328010.html

總結

以上是生活随笔為你收集整理的使用uicollectionView时需要注意的问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。