单元格之间的 UICollectionView 距离不变

Posted

技术标签:

【中文标题】单元格之间的 UICollectionView 距离不变【英文标题】:UICollectionView distance between cells not changing 【发布时间】:2014-10-14 13:06:58 【问题描述】:

我正在开发 ios 应用程序,但我曾一度陷入困境。

我正在使用水平collectionView,我想减少两个collectionViewCell之间的间距,我编写了以下代码sn-p,但它不会改变单元格之间的间距。

.h class

@property (strong, nonatomic) IBOutlet UICollectionView *CollectnVw;

.m class

- (void)viewDidLoad
   [_CollectnVw registerNib:[UINib nibWithNibName:@"FilterCustomCell" bundle:nil] forCellWithReuseIdentifier:@"collectionViewCell"];
    _CollectnVw.backgroundColor = [UIColor clearColor];

    UICollectionViewFlowLayout *flowLayout = [[UICollectionViewFlowLayout alloc] init];
    [flowLayout setItemSize:CGSizeMake(100, 35)];
    [flowLayout setScrollDirection:UICollectionViewScrollDirectionHorizontal];
    [_CollectnVw setCollectionViewLayout:flowLayout];
    [_CollectnVw setAllowsSelection:YES];
    _CollectnVw.delegate=self;



- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section

    return [FilterNameArr count];


- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath

    UICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"collectionViewCell" forIndexPath:indexPath];
    UILabel *titleLabel = (UILabel *)[cell viewWithTag:96];
    [titleLabel setText:[FilterNameArr objectAtIndex:indexPath.row]];

    cell.layer.borderWidth=1.0f;
    cell.layer.borderColor=[UIColor blueColor].CGColor;
    return cell;



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

    return 50; // This is the minimum inter item spacing, Doesn't changing.....

我可以看到我的单元格,但单元格之间的间距没有改变,我希望单元格之间的间距为零...

请提前帮助和感谢

【问题讨论】:

您是否尝试使用此处指定大小的图像。 [flowLayout setItemSize:CGSizeMake(100, 35)]; [flowLayout setScrollDirection:UICollectionViewScrollDirectionHorizo​​ntal]; 我已经在viewDidLoad plz 中写了这两行代码 抱歉,我的意思是图像大小为 100,35 ,因此我们可以保证,它不会占用不必要的空间。 【参考方案1】:

写到这里,问题终于解决了,

flowLayout.minimumInteritemSpacing=0.0f;
flowLayout.minimumLineSpacing=0.0f;

【讨论】:

【参考方案2】:

UICollectionViewFlowLayout 本身暴露了两个属性; minimumInteritemSpacing 设置同一行中项目之间的间距, minimumLineSpacing 设置网格中项目行之间的间距。您是否尝试过在初始化时只设置布局的属性?

flowLayout.minimumInteritemSpacing = 0.0f;

【讨论】:

我编写了您在viewDidLoad 中建议的代码,但没有帮助:(【参考方案3】:

单击集合视图流布局并在尺寸检查器中更改单元格之间的最小间距。 "IN 文档大纲"

【讨论】:

以上是关于单元格之间的 UICollectionView 距离不变的主要内容,如果未能解决你的问题,请参考以下文章

UICollectionView 单元格之间的活力效果

UICollectionView 在单元格之间画线

单元格 UICollectionView 之间的间距不正确

如何删除 UICollectionView 中单元格之间的空间? [复制]

Swift:UICollectionView - 固定单元格之间的空间

UICollectionView,UICollectionViewFlowLayout:不同的单元格宽度和相同的单元格之间定义的间距