带有故事板的 CollectionView 样式

Posted

技术标签:

【中文标题】带有故事板的 CollectionView 样式【英文标题】:CollectionView Styling with Storyboard 【发布时间】:2018-02-28 23:12:51 【问题描述】:

所以我目前正在使用 collectionViews 构建一个应用程序。但是接下来我希望行居中对齐。 (如果这有意义的话)。

正如您在这张图片中看到的:

两个项目之间有一个巨大的白色区域。为什么第二个项目不在第一个项目的正下方,空白区域为 8px?

此外,我希望我的应用程序可以在 iPad 和 iPhone 上运行,因此可以通过此应用程序对我进行缩放。我希望我可以让每一行代表 25% 的视图区域。我将如何做到这一点?但仍然保持它在 iPad 和 iPhone 上的美观/清洁和功能。

编辑: 此外,如果我降低尺寸以便可以在彼此下方放置 3 个,它们首先垂直堆叠而不是水平堆叠。即使它是一个水平滚动的collectionview?

【问题讨论】:

请提供一个最小示例(即测试 XCode 项目)。 【参考方案1】:

空白是因为UICollectionView 使用的是默认UICollectionViewFlowLayout

用这个方法来实现你想要的:

func setCollectionLayout()

    let totalWidth = UIScreen.main.bounds.width
    let size = totalWidth * 0.1 // this is how you set item with a proportion of the screen
    let collectionLayout = UICollectionViewFlowLayout()
    collectionLayout.scrollDirection = .vertical
    collectionLayout.itemSize = CGSize(width: size , height: size)
    collectionLayout.minimumInteritemSpacing = 8
    collectionLayout.sectionInset = UIEdgeInsetsMake(8 , 0 , 8 , 0)
    collectionView.collectionViewLayout = collectionLayout
    collectionView.layoutSubviews()

如果您想要进一步自定义,您可以覆盖 UICollectionViewFlowLayout

【讨论】:

以上是关于带有故事板的 CollectionView 样式的主要内容,如果未能解决你的问题,请参考以下文章

带有故事板的 UISplitViewController

带有故事板的 NSArray

带有 ios 故事板的标签栏

为啥在我的基于 macOS 文档的应用程序中没有调用带有故事板的 applicationDidFinishLaunching?

带有故事板的自定义静态 TableView - 单元格背景

swift3中的导航问题,带有没有故事板的.xib文件