UICollectionView 标题宽度

Posted

技术标签:

【中文标题】UICollectionView 标题宽度【英文标题】:UICollectionView header width 【发布时间】:2014-04-24 18:31:24 【问题描述】:

在我的 UICollectionViewFlowLayout 子类中,我有这个:

self.headerReferenceSize = CGSizeMake(280, 44);

但是,标题以 320 的宽度显示,这是集合视图的宽度。根据文档,这是正确的:

在布局期间,只有与适当的大小相对应的大小 使用滚动方向。例如,对于垂直滚动 方向,布局对象使用您返回的高度值 方法。 (在这种情况下,标题的宽度将设置为 集合视图的宽度。)

但是,我需要宽度为 280,而不是拉伸到集合视图的整个宽度。我怎样才能覆盖它?

【问题讨论】:

将子视图放入标题中,并将其宽度定义为 280 像素。并且标题背景定义为透明。 【参考方案1】:

您可以在标题上添加另一个自定义视图并根据需要调整其大小。当然,您在标题上的所有组件都将通过您创建的自定义视图...

【讨论】:

【参考方案2】:

您不需要在标题中添加子视图。

您希望在 320 的集合视图中的标题宽度为 280,因此在左侧和右侧应用 20 的 Content Inset,如下所示:

斯威夫特

YourCollectionView.ContentInset = UIEdgeInsets(top: 0, left: 20, bottom: 20, right: 0)

Xamarin

YourCollectionView.ContentInset = new UIEdgeInsets(0, 20, 0, 20);

【讨论】:

以上是关于UICollectionView 标题宽度的主要内容,如果未能解决你的问题,请参考以下文章

UiCollectionView 间距问题 - 快速

RFQuiltLayout 和 UICollectionView

如何在 UICollectionView 中居中行?

UICollectionView 初始化问题

UICollectionView 中的多个部分

从 UICollectionViewCell 调用函数以在 UICollectionView 中使用