基于“intrinsicContentSize”的自动布局纵横比(非恒定)

Mar*_*k R 5 macos objective-c ios autolayout

是否可以应用这种自动布局约束和基于动态计算的纵横比intrinsicContentSize?在文档中,我只发现了具有固定比率值的约束。

intrinsicContentSize在我的用例中,实际的高度和高度并不重要,我希望保留动态变化的视图的高度和宽度比。

我应该提供我自己的约束实现吗?或者,还有更好的方法?

Ale*_*olo 0

您可以在此处找到有关如何设置基于比率的约束的答案。您所需要做的就是将宽度和高度限制在一起,保持给定的纵横比(在这种情况下为 4/3)。

我们可以争论观点知道这些信息是否是一件好事,或者他们的父母是否应该设置这种限制。我通常更喜欢父母设置约束,但是如果您的视图在没有此约束的情况下没有任何意义,或者所有这些视图都需要此约束,您可以安全地让这些视图管理自己的宽度/高度比。

最后,intrinsicContentSize告诉自动布局当视图单独时视图的大小:

返回接收视图的自然大小,仅考虑视图本身的属性。

我不知道你的视图代表什么,但正如文档所说,你可以返回CGSizeMake(UIViewNoIntrinsicMetric, UIViewNoIntrinsicMetric)

如果自定义视图没有给定维度的固有大小,则它可以返回该维度的 UIViewNoIntrinsicMetric。