UIScrollView 内的动态高度 UILabel

Dynamic Height UILabel inside a UIScrollView

我已经尝试实现这个设计大约 3 天了,但我尝试的一切都失败了。

这是我的布局。

我还使用此视频作为如何实现 UIScrollView 的参考,因为这是我第一次使用。 https://www.youtube.com/watch?v=VE6DQGy4iS8

我不能使用 UIStackView 因为我们的目标是 iOS 8.

我现在遇到的两个明显问题是:

  1. 当我 运行 应用程序时,滚动没有任何作用。
  2. 我在故事板中得到的唯一警告是:

好的,最后我成功了。

我所做的是将具有动态 UILabel 的 UIView 固定到顶部、右侧和左侧。 对于它的高度,我控制从它拖到它内部的最后一个项目,这是照片中的第二个动态高度 UILabel。我控制拖动并设置 UIView 并选择 "Bottom Spacing to Container" 和具有动态高度的 UILabel。这样 UILabel 就控制了 UIView 的最终高度,UIScrollView 需要它来确定自己的高度。

粗略地说,每个 UILabel 元素仅固定在右上角左上角,这允许它们都是动态的。

您可以选择使用以下 UIView 做什么(是要给它们静态高度还是动态高度)。

至于底部的UIButton,我也做了同样的事情。我控制从包含的 UIView(嵌套在 UIScrollView 中并包含此处的所有内容)拖动到 UIButton,我选择 "Bottom Spacing to Container" 并将其设置为 5。这将允许包含的视图根据位置调整其高度UIButton 的位置取决于当动态标签推动其视图的高度并依次推动 UIButton(如果有任何意义)时它移动的距离。

简而言之,在典型情况下,您通常将视图中的最后一个元素固定到包含视图的左下角和右下角。但是,为了允许动态更改,您需要反转约束的 2 个项目。

我希望这有用。