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

Ios 如何在UICollectionView中删除单元格之间的空间?,ios,objective-c,uicollectionview,Ios,Objective C,Uicollectionview,如何在UiCollectionView中删除两个单元格之间的空格?最小间距不起作用 - (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath { if (collectionView.tag==101) {

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

- (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);
    }
}


但这不起作用。

发生这种情况是因为UICollectionviewFlowLayout的工作方式。您可以提供自定义的collectionview布局:
- (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);
    }
}

或使用3d party解决方案:

UICollectionViewFlowLayoutDelegate
中调用
MinimumineItemSpacingForSectionAtIndex
的方法可以帮助您。minimunIteritemSpace水平设置项目之间的空间,例如,请尝试以下代码:

- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionView *)collectionViewLayout minimumInteritemSpacingForSectionAtIndex:(NSInteger)section  
{ 
  return 0; // This is the minimum inter item spacing, can be more
}

此外,您还可以使用
edgeInsets
更改项目之间的间距。

出于这些目的,请使用UICollectionViewFlowLayout:

UICollectionViewFlowLayout *flow = [[UICollectionViewFlowLayout alloc] init];
flow.itemSize = CGSizeMake(cellWidth, cellHeight);
flow.scrollDirection = UICollectionViewScrollDirectionHorizontal;
flow.minimumInteritemSpacing = 0;
flow.minimumLineSpacing = 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);
}
使用两个代理并更改宽度和高度

* *

将单元格和行的最小间距设置为零 并将代码替换为

- (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);
}
 }

这将连接列,但行仍将被分隔。