如果正确调整大小,如何重新布局collectionview单元格

时间:2015-10-21 18:43:07

标签: ios uicollectionview

我有一个集合视图,我试图在每一行上做2个单元格。看起来它正在从我的原型单元构建单元并正确地对准所有内容。然后它运行我的sizeForItemAtIndexPath并使大小调整正确(每行2个单元格),但随后所有标签都偏离中心。

我一直在使用invalidateLayout和viewDidLayoutSubviews,但似乎没有任何工作。任何想法如何强制单元格运行sizeForItemAtIndexPath后重新布局标签?提前谢谢。

编辑: 这是两个图像。 这是第一个图像sizeForItemAtIndexPath被注释掉,单元格中的所有内容都被完美地格式化,但间距是关闭的: enter image description here 这是第二个,使用sizeForItemAtIndexPath使collectionView具有适当的间距。这是对齐在单元格内弄乱而不是居中的位置。 enter image description here

1 个答案:

答案 0 :(得分:1)

我已经体验过contentView在我的单元格中没有正确调整大小的经验,当它们被改变为与使用collectionView(_:layout:sizeForItemAtIndexPath :)的storyboard中的大小不同时。将单元格出列后尝试添加以下内容:

let cell = collectionView.dequeueReusableCellWithReuseIdentifier("Cell", forIndexPath: indexPath)
cell.contentView.frame = cell.bounds
cell.contentView.autoresizingMask = [.FlexibleWidth, .FlexibleHeight]

如果您使用UICollectionViewCell的自定义子类,则可以将该代码置于awakeFromNib()的覆盖中:

override func awakeFromNib() {
    super.awakeFromNib()

    contentView.frame = cell.bounds
    contentView.autoresizingMask = [.FlexibleWidth, .FlexibleHeight]
}