iOS   发布时间:2022-03-31  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ios – 如何使UICollectionViewFlowLayout itemSize动态显示屏幕大小大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我以编程方式工作(没有故事板),并且无法使layout.itemSize动态化为不同的屏幕尺寸.我收到这个错误消息:

在我的实现文件中使用以下代码

- (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动态显示屏幕大小所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。