【问题标题】:CollectionView with different item sizes not working on Iphone 6plus具有不同项目大小的 CollectionView 在 Iphone 6plus 上不起作用
【发布时间】:2015-05-23 16:21:17
【问题描述】:

我正在尝试创建一个包含不同大小项目的图像集合视图。在那个 collectionview 中,我想要 2 个项目(一个更大,一个更小)来填充一个屏幕行。我写的是

itemWith = (collectionviewWidth) / 2.69;
smallerSize = CGSizeMake(itemWith, itemWith * 1.3);
biggerSize = CGSizeMake(itemWith * 1.69, itemWith * 1.3);

我已经使用 UICollectionViewFlowLayout 来确保项目之间没有空格,如下所示

setMinimumInteritemSpacing = 0
setMinimumLineSpacing = 0
return UIEdgeInsetsZero on method "insetForSectionAtIndex"

此布局在 Iphone 5 和 Iphone 6 上完美运行,每 2 个项目将填满一行,依此类推。但是当我在 iphone6plus 上运行时,第二项被推到了下一行。

我猜原因是 6plus 带有 3x 渲染像素,而 iphone 5 和 6 带有 2x。但我不确定,也不知道如何修复它。任何人都可以帮我解释它并向我展示如何让我的布局在各种设备上正常工作。非常感谢!

【问题讨论】:

    标签: objective-c uicollectionview iphone-6-plus


    【解决方案1】:

    你应该在委托方法中计算你UICollectionViewCell的大小:

    -(CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath
    

    此外,您可能需要使用autolayout 而不是手动设置框架:6 plus 的较大屏幕空间将由它处理。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-10
      • 1970-01-01
      • 1970-01-01
      • 2016-03-13
      • 2018-12-28
      相关资源
      最近更新 更多