我在iOS 9的集合视图单元格中遇到自动布局问题。
在集合视图中:cellForItemAtIndexPath:我更改了约束:
[[self rootStack] setDistribution:UIStackViewDistributionFillEqually];
或
[[self rootStack] setDistribution:UIStackViewDistributionFillProportionally];
在单元格的preferredLayoutAttributesFittingAttributes中:我尝试强制进行额外的布局:
- (UICollectionViewLayoutAttributes*) preferredLayoutAttributesFittingAttributes:(UICollectionViewLayoutAttributes *)layoutAttributes
{
[self setNeedsLayout];
[self layoutIfNeeded];
return layoutAttributes;
}
但是,当显示单元格时,一些显示约束更改的效果,而另一些则不显示。如果我滚动一个不在屏幕外显示更改的单元格然后向后滚动到它,则会显示更改。将约束更改移动到单元格的updateConstraints导致没有任何单元格在第一次显示时显示更改。
我可以在集合视图控制器的viewWillAppear:中通过在集合视图上调用reloadData来显示第一个单元格。但是一旦我开始滚动,一些进入视图的单元格格式不正确(除非我滚过它们然后滚动回它们)。
有没有办法可以确保所有单元格在第一次显示时格式正确?