ios - 等距集合查看单元格?

标签 ios swift uicollectionview

我有一个 UICollectionView 单元格大小相等。我想让单元格之间以及单元格与 Collection View 左右两侧的距离都相等,每行 2 个单元格。

每个单元格的内容水平居中,所以我尝试将单元格的宽度设置为 Collection View 宽度的一半:

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
    return CGSize(width: eventCollectionView.frame.width/2, height: 111)
}

但这会产生以下结果:

pic

如图所示,两个单元格分别位于宽度的 1/4 和 3/4 处。相反,我希望它们在 1/3 和 2/3 之间,这样它们和边缘之间的空间都是相等的。

有谁知道我将如何做到这一点?

最佳答案

使用下面的代码

fileprivate var defaultspacing: CGFloat = 5

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
    var size: CGSize = .zero

    let width = (SCREEN_WIDTH - (3 * defaultspacing))/2
    size = CGSize(width: width, height: width)
    return size;
}

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAt section: Int) -> UIEdgeInsets {

    return UIEdgeInsetsMake(self.defaultspacing, self.defaultspacing, 0, self.defaultspacing);
}

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAt section: Int) -> CGFloat {

    return self.defaultspacing;
}

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumInteritemSpacingForSectionAt section: Int) -> CGFloat
{
    return self.defaultspacing;

}

关于ios - 等距集合查看单元格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44149328/

相关文章:

ios - 加载具有与其 UICollectionView 不同的 alpha 值的 UICollectionViewCell

ios - ARC ViewController 被释放

ios - 如何从 iOS 自动填充密码中保存/检索密码?

ios - UICollectionView 中的多种单元格类型

swift - 如何在 Swift 中读取 ANSI Escape 代码响应值?

ios - 如何将多个 View Controller 链接到一个容器 View ?

swift - 我可以推送ViewController(UIViewController(),动画: true) ins side collection view cell

ios - 如何将数据发送到新 View

iOS 8 测试版 OSStatus -34018 (errSecMissingEntitlement)

macos - Swift 或 Objective-C 命令行工具和文本到语音不输出音频