Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/102.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 在约束更改后获取要更新的集合视图单元格_Ios_Uicollectionview_Autolayout_Constraints - Fatal编程技术网

Ios 在约束更改后获取要更新的集合视图单元格

Ios 在约束更改后获取要更新的集合视图单元格,ios,uicollectionview,autolayout,constraints,Ios,Uicollectionview,Autolayout,Constraints,我在iOS 9中的集合视图单元格中遇到自动布局问题 在集合视图的:cellForItemAtIndexPath:中,我更改了一个约束: [[self-rootStack]setDistribution:UIStackViewDistributionAllegally] 或 [[self-rootStack]setDistribution:UIStackViewDistributionFill-Protocoly] 在单元格的preferredLayoutAttributesFittingAttr

我在iOS 9中的集合视图单元格中遇到自动布局问题

在集合视图的:cellForItemAtIndexPath:中,我更改了一个约束:

[[self-rootStack]setDistribution:UIStackViewDistributionAllegally]

[[self-rootStack]setDistribution:UIStackViewDistributionFill-Protocoly]

在单元格的preferredLayoutAttributesFittingAttributes期间:我尝试强制进行额外一轮布局:

- (UICollectionViewLayoutAttributes*) preferredLayoutAttributesFittingAttributes:(UICollectionViewLayoutAttributes *)layoutAttributes
{
    [self setNeedsLayout];
    [self layoutIfNeeded];

    return layoutAttributes;
}
尽管如此,当显示单元格时,有些单元格显示约束更改的效果,有些则不显示。如果我滚动屏幕外未显示更改的单元格,然后滚动回该单元格,它将显示更改。将约束更改移动到单元格的updateConstraints会导致没有一个单元格在第一次显示时显示更改

对于显示的第一个单元格,我可以通过在集合视图控制器的ViewWillDisplay期间调用集合视图上的reloadData来解决此问题:。但一旦我开始滚动,一些进入视图的单元格的格式就不正确(除非我滚动过它们,然后再滚动回它们)


有什么方法可以确保所有单元格在第一次显示时的格式正确吗?

在单元格中为行更改约束似乎很好。我在所有有聊天功能的应用程序中都是这样做的。(更改文本宽度/高度约束以适合每条消息的文本)。但是[self.rootStack]是控制器自身,还是细胞自身?我只是想说清楚。