【问题标题】:Need Help in applying constraints to UIScrollView在将约束应用于 UIScrollView 时需要帮助
【发布时间】:2017-01-31 07:11:28
【问题描述】:

我正在以编程方式添加子视图。 要求:添加额外视图时应启用滚动。 我应用的约束:

为了删除顶部的多余空格,我写了self.automaticallyAdjustsScrollViewInsets = false 还将内容大小设为self.scrollView.contentSize = CGSize(width: self.contentView.frame.width, height: self.contentView.frame.height*2)

但是当视图被加载时滚动被完全禁用。

请帮帮我

【问题讨论】:

  • 打印出来的 contentSize 是多少?
  • 打印出来的时候显示为(375.0,1334.0)
  • 您是否在 IB 中检查过反弹和垂直反弹?并且还启用了滚动
  • 在 viewWillLayoutSubviews 中设置内容大小
  • @jo3birdtalk ,这些都经过检查。他们只是弹跳而不是向上滚动。

标签: ios swift uiscrollview autolayout


【解决方案1】:

当你使用自动布局时,你必须在viewcontroller方法中设置content size,你必须override下面的方法。

-(void)viewWillLayoutSubviews;

迅速

override func viewWillLayoutSubviews() {

    }

【讨论】:

    【解决方案2】:

    尝试根据滚动内容视图底部子视图的(origin.y + 高度)设置内容视图高度。

    【讨论】:

    • 我很欣赏这个想法。我在哪里设置它?
    • 在 contentview 中以编程方式添加子视图后。
    • 当我使用自动布局时,明确分配高度是一种好习惯。而且它也不起作用。
    • 当您以编程方式添加子视图时,您必须根据其中所有子视图的高度来更改内容视图的高度。因此,您可以使用自动布局以编程方式分配高度。
    【解决方案3】:

    您需要做的事情很少,请检查您是否已启用此功能。

    1. 反弹
    2. 垂直弹跳
    3. 启用滚动

    如果启用这些仍然无法帮助滚动,请添加 ContentView 的高度约束。您必须将此约束作为IBOutlet 连接到您的视图控制器。

    我相信您的数据是从服务器获取的,因此您的内容高度不明确。因此,在您打印问题中值(375.0,1334.0)contentSize 的位置,添加这行代码,之后您应该能够滚动。

    YourHeightConstraint.constant = self.scrollView.contentSize.height
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-09-05
      • 1970-01-01
      • 1970-01-01
      • 2017-10-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多