“UICollectionVIEw must be initialised with a non-nil layout parameter”
在我的实现文件中使用以下代码:
- (instancetype)init { UICollectionVIEwFlowLayout *layout = [[UICollectionVIEwFlowLayout alloc] init]; CGSize size = self.collectionVIEw.bounds.size; layout.itemSize = CGSizeMake(size.wIDth,size.height); [layout setScrollDirection:UICollectionVIEwScrollDirectionVertical]; layout.minimumlinespacing = 100.0; layout.headerReferenceSize = CGSizeMake(0.0,50.0); return (self = [super initWithCollectionVIEwLayout:layout]);}
如果我对layout.itemSize使用“100,100”,我不会收到错误消息.有没有办法让它动态?
我是Objective-C的新手,所以我会很乐意为我做错事而提供任何帮助.
解决方法 需要使用流代理方法:- (CGSize)collectionVIEw:(UICollectionVIEw *)collectionVIEw layout:(UICollectionVIEwLayout *)collectionVIEwLayout sizeforItemAtIndexPath:(NSIndexPath *)indexPath{ CGSize cellSize = CGSizeMake(wIDth,height); return cellSize;}
您可以指定任何所需的宽度和高度浮点值.
例如,让我们说你的CollectionVIEw是垂直的,你想要一个简短的标题视图,一个大的中间视图和一个小的页脚视图,那么你可以做一些像:
- (CGSize)collectionVIEw:(UICollectionVIEw *)collectionVIEw layout:(UICollectionVIEwLayout *)collectionVIEwLayout sizeforItemAtIndexPath:(NSIndexPath *)indexPath{ CGSize cellSize; cellSize.wIDth = self.vIEw.bounds.size.wIDth; if(indexPath.row == 0) { // header vIEw height cellSize.height = 100; } else if(indexPath.row == 1) { // body vIEw height cellSize.height = 500; } else { // assuming number of items is 3,then footer vIEw is last vIEw // footer vIEw height cellSize.height = 100; } return cellSize;}总结
以上是内存溢出为你收集整理的ios – 如何使UICollectionViewFlowLayout itemSize动态显示屏幕大小全部内容,希望文章能够帮你解决ios – 如何使UICollectionViewFlowLayout itemSize动态显示屏幕大小所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)