我是否应该使整个层次结构的内在内容大小无效?

时间:2018-01-25 08:01:06

标签: ios layout autolayout uistackview intrinsic-content-size

假设我有以下启用了自动布局的视图层次结构:

UIStackView |__ OuterCustomView (overridden intrinsic content size) |__ UILabel |__ InnerCustomView (overridden intrinsic content size) |__UILabel |__UILabel

InnerCustomView内的标签具有动态可更改的文字和字体。每当发生更改时,我都会在InvalidateIntrinsicContentSize()实例上调用InnerCustomView(Xamarin语法)。

问题是 - 我是否还需要在包含OuterCustomView的情况下手动使其无效,或者框架是否足够聪明,可以从那里获取所有内容并将所有内容重新布局到最顶层的UIStackView

1 个答案:

答案 0 :(得分:2)

不,您不需要手动使内在内容大小无效。 为视图系统调用方法invalidateIntrinsicContentSize()后,递归更新层次结构中的所有超级视图。