具有不同项目大小的CollectionView无法在Iphone 6plus上运行

时间:2015-05-23 16:21:17

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

我正在尝试使用不同尺寸的项目创建图像的集合视图。在该集合视图中,我想要填充一个屏幕行的两个项目(一个更大,一个更小)。我写的是

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带有渲染像素3倍而iphone 5& 6来自2x。但我不确定也不知道如何修复它。任何人都可以帮我解释它,并告诉我如何使我的布局在所有类型的设备上正常工作。非常感谢!

1 个答案:

答案 0 :(得分:-1)

您应该在委托方法中执行UICollectionViewCell的大小的所有计算:

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

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