Eri*_*ite 5 ios autolayout uicollectionview uicollectionviewcell ios8
我在尝试在集合视图中设置细胞间距时遇到问题.iPhone 5上的一切看起来都不错,但是当我在6和6上运行它时,单元间距会急剧增加.我将最小间距设置为10,但似乎没有帮助.第一个图像是我试图在所有设备上实现的.之后的图片是我实际得到的:



这是我在IB中设置的图片:

小智 4
根据您的问题,听起来您打算设置minimumInteritemSpacing(同一行中的项目之间使用的最小间距)。
不管怎样,最小间距是您能接受的最小间距,而不是您想要的确切间距。100 的空格仍然有效,因为它大于最小值 10。
真正的问题是像元大小,您已将其固定为 150x200。如果您希望单元格调整其宽度,则需要itemSize根据视图宽度计算流布局。
如果所有单元格的大小相同,您可以设置流布局的itemSize属性:
#define kCellsPerRow 2
UICollectionViewFlowLayout *flowLayout = (UICollectionViewFlowLayout*)self.collectionView.collectionViewLayout;
CGFloat availableWidthForCells = CGRectGetWidth(self.collectionView.frame) - flowLayout.sectionInset.left - flowLayout.sectionInset.right - flowLayout.minimumInteritemSpacing * (kCellsPerRow - 1);
CGFloat cellWidth = availableWidthForCells / kCellsPerRow;
flowLayout.itemSize = CGSizeMake(cellWidth, flowLayout.itemSize.height);
Run Code Online (Sandbox Code Playgroud)如果您需要计算每个单元格的大小,您可以在委托中进行collectionView:layout:sizeForItemAtIndexPath:。
当设备方向改变时重新计算 itemSize 并更新布局:
重绘布局而不使用动画:
[self.collectionView.collectionViewLayout invalidateLayout]
动画布局更改:
[self.collectionView performBatchUpdates:nil completion:nil]
| 归档时间: |
|
| 查看次数: |
1972 次 |
| 最近记录: |