我正在尝试使用不同尺寸的项目创建图像的集合视图。在该集合视图中,我想要填充一个屏幕行的两个项目(一个更大,一个更小)。我写的是
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。但我不确定也不知道如何修复它。任何人都可以帮我解释它,并告诉我如何使我的布局在所有类型的设备上正常工作。非常感谢!
答案 0 :(得分:-1)
您应该在委托方法中执行UICollectionViewCell
的大小的所有计算:
-(CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath
此外,您可能需要使用autolayout
而不是手动设置框架:6加上较大的屏幕区域将由它来处理。