我有一个集合视图,我试图在每一行上做2个单元格。看起来它正在从我的原型单元构建单元并正确地对准所有内容。然后它运行我的sizeForItemAtIndexPath并使大小调整正确(每行2个单元格),但随后所有标签都偏离中心。
我一直在使用invalidateLayout和viewDidLayoutSubviews,但似乎没有任何工作。任何想法如何强制单元格运行sizeForItemAtIndexPath后重新布局标签?提前谢谢。
编辑: 这是两个图像。 这是第一个图像sizeForItemAtIndexPath被注释掉,单元格中的所有内容都被完美地格式化,但间距是关闭的: 这是第二个,使用sizeForItemAtIndexPath使collectionView具有适当的间距。这是对齐在单元格内弄乱而不是居中的位置。
答案 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]
}