[英]UICollectionView - distance between cells?
我正在使用单元格宽度为67的UICollectionView,现在我正在使用流布局。
我连续有3个细胞,细胞之间有30px的空间。 如何减少距离,以便我可以连续安装四个细胞? 这种方法与它有关吗?
- (UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout insetForSectionAtIndex:(NSInteger)section
{
return UIEdgeInsetsMake(10, 10, 10, 10);
}
这个UICollectionViewFlowLayoutDelegate
方法将帮助你..
- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionView *)collectionViewLayout minimumInteritemSpacingForSectionAtIndex:(NSInteger)section
{
return 10; // This is the minimum inter item spacing, can be more
}
如果您需要更多空间来排列单元格,还可以调整edgeInsets
从这个 。 您需要更改minimumInteritemSpacing和minimumLineSpacing 。
UICollectionViewFlowLayout *flow = [[UICollectionViewFlowLayout alloc] init];
flow.itemSize = CGSizeMake(cellWidth, cellHeight);
flow.scrollDirection = UICollectionViewScrollDirectionHorizontal;
flow.minimumInteritemSpacing = 0;
flow.minimumLineSpacing = 0;
mainCollectionView.collectionViewLayout = flow;
不,它没有。 只需更改布局的minimumInteritemSpacing
。
您可以使用委托方法,如: - 用于更改节中单元格之间的空间。
- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionView *)collectionViewLayout minimumInteritemSpacingForSectionAtIndex:(NSInteger)section
用于显示不同部分的单元格之间的顶部,底部y填充。
- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout minimumLineSpacingForSectionAtIndex:(NSInteger)section
//布局:设置边缘//为单元格设置插入
- (UIEdgeInsets)collectionView:
(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout insetForSectionAtIndex:(NSInteger)section
//top,left,botttom,right
swift 3.0
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAt section: Int) -> CGFloat {
if DEVICE_IDIOM == .pad {
return 15.0
}
else {
return 10.0
}
}
我遇到过同样的问题..
在我的情况下,我需要一个retangular单元格。
为了达到预期的效果,我使用了UICollectionViewDelegateFlowLayout 。
这是我执行的方法之一:
- (CGSize)collectionView:(UICollectionView *)collectionView
layout:(UICollectionViewLayout*)collectionViewLayout
sizeForItemAtIndexPath:(NSIndexPath *)indexPath;
{
CGFloat width = CGRectGetWidth(self.view.frame)/3.0f;
return CGSizeMake(width, (width * 1.1f));
}
这对我来说很好! 我希望它对某人有帮助。
Swift 4.2
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumInteritemSpacingForSectionAt section: Int) -> CGFloat {
return 10
}
func collectionView(_ collectionView: UICollectionView, layout
collectionViewLayout: UICollectionViewLayout,
minimumLineSpacingForSectionAt section: Int) -> CGFloat {
return 10
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.