如何在UICollectionView中删除单元格之间的空间?

时间:2017-07-13 18:39:51

标签: ios objective-c uicollectionview

如何删除UiCollectionView中两个单元格之间的空格?最小间距不起作用。

image

- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath
{
    if (collectionView.tag==101)
    {
        return CGSizeMake((_collView.frame.size.width),(_collView.frame.size.height));

    }
    else
    {
       return CGSizeMake((_collView2.frame.size.width/3)-20,300);
    }
}

但这不起作用。

6 个答案:

答案 0 :(得分:6)

* enter image description here *

为单元格设置Min Spacing,为Lines设置为零 并通过

替换您的代码
- (CGSize)collectionView:(UICollectionView *)collectionView layout:       (UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:   (NSIndexPath *)indexPath
{
if (collectionView.tag==101)
{
    return CGSizeMake((_collView.frame.size.width),(_collView.frame.size.height));
}
else
{
   return CGSizeMake((_collView2.frame.size.width/3),300);
}
 }

答案 1 :(得分:3)

出于以下目的使用UICollectionViewFlowLayout:

UICollectionViewFlowLayout *flow = [[UICollectionViewFlowLayout alloc] init];
flow.itemSize = CGSizeMake(cellWidth, cellHeight);
flow.scrollDirection = UICollectionViewScrollDirectionHorizontal;
flow.minimumInteritemSpacing = 0;
flow.minimumLineSpacing = 0;

答案 2 :(得分:0)

这是因为UICollectionviewFlowLayout的工作原理。您可以提供自定义集合视图布局: Left Align Cells in UICollectionView

或使用3d派对解决方案: https://github.com/mokagio/UICollectionViewLeftAlignedLayout

答案 3 :(得分:0)

使用此代码,根据您的设计调整宽度和高度。

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

CGSize s = CGSizeMake([[UIScreen mainScreen] bounds].size.width/2-10,
[[UIScreen mainScreen] bounds].size.height/2.9-7);
return s;
 }

以下代码调整集合视图的边缘

- (UIEdgeInsets)collectionView:
(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout insetForSectionAtIndex:(NSInteger)section {
return UIEdgeInsetsMake(2, 6,2, 6);
}

使用两个代表并更改宽度和高度

答案 4 :(得分:-2)

来自minimumInteritemSpacingForSectionAtIndex的{​​{1}}方法可以为您提供帮助。 minimunIteritemSpace在项目之间水平设置空间,例如尝试以下代码:

UICollectionViewFlowLayoutDelegate

此外,您可以使用- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionView *)collectionViewLayout minimumInteritemSpacingForSectionAtIndex:(NSInteger)section { return 0; // This is the minimum inter item spacing, can be more } 更改项目之间的空间。

答案 5 :(得分:-2)

- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout minimumInteritemSpacingForSectionAtIndex:(NSInteger)section
{


return 10.0;
}

- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout minimumLineSpacingForSectionAtIndex:(NSInteger)section
{


return 10.0;
}
- (UIEdgeInsets)collectionView:
(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout insetForSectionAtIndex:(NSInteger)section
{


// return UIEdgeInsetsMake(0,8,0,8);  // top, left, bottom, right
return UIEdgeInsetsMake(20,20,20,20);  // top, left, bottom, right
}