我有一个UIContentContainer,可以在运行时更改其子视图控制器。 ContentContainer视图控制器响应:
- (void)preferredContentSizeDidChangeForChildContentContainer:(id<UIContentContainer>)container
{
[super preferredContentSizeDidChangeForChildContentContainer:container];
self.contentContainerHeightContstraint.constant = container.preferredContentSize.height;
[UIView animateWithDuration:0.25
animations:^{
[self.view layoutIfNeeded];
}];
}
因此,当我将childViewController中的preferredContentSize
设置为比容器正确调整大小之前更大的大小时,但是当我采用较小的值时,没有任何反应。
我尝试使用内容压缩和拥抱优先级。到目前为止没有运气。
那么为什么preferredContentSizeDidChangeForChildContentContainer
方法只在值大于之前被调用?
答案 0 :(得分:0)
我发现了问题。我在UINavigationController
内,我不得不拨打self.parentViewController.preferredContentSize
。现在正在适当调整大小。