gpt4 book ai didi

高度未知的 iOS 自动布局

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:03:40 27 4
gpt4 key购买 nike

我正在尝试按如下方式设置我的 View

layout

每个 View 都包含许多 subview ,例如标签和按钮。对于我的项目,我必须使用自动布局。具体来说,我正在使用名为 FLKAutolayout 的第 3 方库,它可以让事情变得更快。问题是这些 View 中的每一个都有一个动态高度。可以将每个 View 的两侧固定到父 View 的每一侧。然而,当涉及到垂直排列时,我遇到了模棱两可的布局。我试图将 View 1 固定到 super View 的顶部,将 View 2 的顶部固定到 View 1 的底部,将 View 3 的顶部固定到 View 2 的底部,等等。如果我不将最底部的 View 固定到 super View 的底部,则不会显示任何内容。如果我确实将最底部的 View 固定到 super View 的底部,则只有最顶部的 View 会拉伸(stretch)到屏幕的全尺寸。如果我手动将高度限制为任意数量,一切都会好起来的。当然,问题是我实际上不知道高度应该是多少,因为它们会根据内容而变化。

是否有管理可变高度 View 数组的好策略?另外,我想我需要补充一点, View 的总高度有可能(并且很可能)大于包含这些垂直 View 的 View Controller View 的高度大小。最终我希望能够使用 UIScrollView 滚动它们,但现在它们可以在屏幕外继续。

最佳答案

每个 UIView 都有一个 -(CGSize)intrinsicContentSize 方法。如果您的 View 内容动态变化,您应该覆盖该方法并根据 View 内容返回适当的维度。自动布局使用此信息来计算 View 的高度。您可能必须调用 -(void)invalidateIntrinsicContentSize 让系统知道固有大小已更改。顺便说一句:大多数 Apple 提供的 UIKIT 类已经提供了适当的固有大小。

关于高度未知的 iOS 自动布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17600337/

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