动态检测UIScrollView的高度

时间:2016-01-19 07:19:56

标签: ios swift uiscrollview autolayout

我在检测UIScrollView高度时遇到了实际问题。我经常搜索并找到了这个解决方案:

enter image description here

所以我从$img_name = $_POST['img_name'] ?? ''; // TheMoreYouKnow :) 拖到Content View并制作了View。但我不适合我。

我还尝试根据元素高度计算scrollView高度,但我不认为这是正确的方法。

如何动态设置UIScrollView高度?这样做的正确方法是什么?

4 个答案:

答案 0 :(得分:1)

您的ScrollView应添加 ContentView ,如下所示:

enter image description here

选择您的scrollView并在尺寸Inspector底部,设置宽度如下:

my inspector setting

有关如何在 Interface Builder 中处理scrollView的详细信息,您可以查看此AppleDoc Working with Scroll Views

希望这对你有帮助!

答案 1 :(得分:0)

您只能通过计算添加到scrollview的各个对象的高度来设置scrollView的高度。

以编程方式,计算每个UI对象的高度,并在结束时将内容高度设置为scrollview。

[scView setContentSize:CGSizeMake(300, height)];

在上面一行,'身高'只不过是计算出的所有UI对象的所有高度的总和。

答案 2 :(得分:0)

通过执行以下操作,我能够根据内部的内容实现具有自动高度的UIScrollView。

  1. 将滚动视图添加到主视图。
  2. 在此容器滚动视图中添加一个ContentView。
  3. 在此内容中提供适当的约束 查看容器滚动视图以及其内部UI 组件。请注意,你不应该给它固定的高度 内容视图。内容视图的约束应该增长 根据
  4. 中的UI组件
  5. 这可能会给你一个布局 警告为'Unambigous ....'。要解决此问题,请在内容视图和滚动视图之间设置“等于高度”约束关系
  6. 尝试以上步骤,这将解决您的问题:)

答案 3 :(得分:0)

您想通过自动布局在UIScrollView中添加项目(UIView,UILabel ...)吗?如果是这样,只需将它们放入其中并为它们创建正确的约束。

关键点是UIScrollView中的每个项目都有 superview 的顶部,前导,底部和尾部限制。最重要的是确定,你的UIScrollView对其子项有顶部,前导,底部和尾随的后果约束。它将为您计算滚动视图的正确内容高度。

在您的解决方案中,如果您的contentView的框架为零,则不会为滚动视图提供任何高度。