在 iOS 的屏幕尺寸上,collectionview 列之间的间距不同

Posted

技术标签:

【中文标题】在 iOS 的屏幕尺寸上,collectionview 列之间的间距不同【英文标题】:Spacing between collectionview columns differ on screen sizes iOS 【发布时间】:2016-10-27 04:49:49 【问题描述】:

我正在创建一个 UICollectionView 的图像。我不希望单元格之间有任何间距。为此,我执行以下操作:-

public override nfloat GetMinimumInteritemSpacingForSection(UICollectionView collectionView, UICollectionViewLayout layout, nint section)

        return 0;


public override nfloat GetMinimumLineSpacingForSection(UICollectionView collectionView, UICollectionViewLayout layout, nint section)

        return 0;


public override CoreGraphics.CGSize GetSizeForItem(UICollectionView collectionView, UICollectionViewLayout layout, Foundation.NSIndexPath indexPath)

       if (UIScreen.MainScreen.Bounds.Size.Height > 567)
        
            return new CoreGraphics.CGSize(100, 100);
        
        else
        
            return new CoreGraphics.CGSize(80, 80);
        


public override UIEdgeInsets GetInsetForSection(UICollectionView collectionView, UICollectionViewLayout layout, nint section)

    return new UIEdgeInsets(10, 10, 10, 10);

使用此代码,我的单元格在 iPhone 5S 屏幕上看起来不错,但是当我在 iPhone 6 上测试时,单元格之间的间距太大,如下所示:

我怎样才能解决这个问题并在单元格之间实现完全没有空间?

【问题讨论】:

【参考方案1】:

如果您希望所有设备有 4 个单元格,则根据设备宽度设置单元格大小。

public override CoreGraphics.CGSize GetSizeForItem(UICollectionView collectionView, UICollectionViewLayout layout, Foundation.NSIndexPath indexPath) 

   CoreGraphics.CGFloat width = (UIScreen.MainScreen.Bounds.Size.Width / 4)
   return new CoreGraphics.CGSize(width, width);

【讨论】:

感谢您的回答。这是确切的问题:) 欢迎朋友,很高兴它有帮助:)

以上是关于在 iOS 的屏幕尺寸上,collectionview 列之间的间距不同的主要内容,如果未能解决你的问题,请参考以下文章

API - iOS 和 Android 的图像尺寸(不同的屏幕尺寸) - 优化

IOS - 将背景图像缩放到不同的屏幕尺寸并将标签放在固定位置上

iOS屏幕适配(尺寸适配)

屏幕尺寸适配 |代码 |斯威夫特 | iOS

不同屏幕尺寸的 iOS 缩放约束

iOS - 自动布局与不同屏幕尺寸的不同故事板