gpt4 book ai didi

iOS 自动布局 intrinsicContentSize = -1

转载 作者:行者123 更新时间:2023-12-01 15:52:19 27 4
gpt4 key购买 nike

当使用自动布局时,调用 intrinsicContentSize 似乎是确定正确适合 View 内容所需的 CGSize 的方法。

但是,此方法仅支持有限数量的现有 UIView。每当我制作自定义 View 时,即使它像容器 UIView 内部的 UILabel 一样简单,包含 View 也无法确定其 intrinsicContentSize(返回 -1)。

我不明白为什么 View 能够正确显示在屏幕上,但 View 甚至不知道自己的高度...

容器 View 中的 UILabel 是一个简单的示例,但我正在处理稍微复杂的 UIView,其中可能有 15 个 View 彼此嵌套。为了确定包含其所有 subview 的 View 的大小,我必须手动创建我自己的 intrinsicContentSize 方法并做非常耗时的工作,我必须总结所有 subview 的高度加上所有的约束。这个过程很可怕。通过忘记添加其中一个 subview 或约束的高度,很容易错过某处的高度。此外,由于使用动态 subview ,事情变得更加复杂。例如,如果 View 有2列动态 subview ,则需要手动找到每列 subview +约束的高度,比较这些高度并返回两者中的较大者。同样,这是一个简单的示例,但它通常不是那么简单,会导致许多偏头痛。

回到我之前的问题。 iOS 如何显示 View 却不知道 View 有多高?必须有某种方法可以找出那个高度是多少。感谢阅读。

这是一张图片,可以帮助形象化我想要的东西。 image

最佳答案

您所有的 subview 都使用自动布局吗?我的意思是,如果您使用自动布局来放置 MyCompositeObject,那么复合对象是否在内部使用约束来放置它的许多对象?我发现如果是这样,那么 intrinsicContentSize 将说明所有 subview ,但如果不是,您的 UIView 的固有内容大小将最终返回一些不准确和小的东西。

关于iOS 自动布局 intrinsicContentSize = -1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17868852/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com