【问题标题】:UIScrollView is not scrolling contentsUIScrollView 不滚动内容
【发布时间】:2018-05-03 09:17:31
【问题描述】:

这就是我想做的:

我将标签的行数设置为 0,即使我用 TextView 替换了 UILabel,但即使当行数超过其高度时它也不会扩展。然后滚动视图不滚动

AutoLayout 应该怎么做?

【问题讨论】:

    标签: ios uiscrollview autolayout uilabel uitextview


    【解决方案1】:

    有很多事情可能以错误的方式设置,并且很难从您的描述中得知。 您可以在 viewDidLayoutSubviews 中设置 scrollView 的 contentSize

    尝试这样的事情(您可以使用您为尺寸设置的数字,确保数字大于屏幕尺寸):

        override func viewDidLayoutSubviews() {
    
        super.viewDidLayoutSubviews()
    
        scrollView.contentSize = CGSizeMake(view.frame.size.width, view.frame.size.height + 300)
        }
    

    这可能有助于找出问题所在。

    【讨论】:

      【解决方案2】:

      你必须确保你的约束设置正确。

      例如,选择您的滚动视图,显示尺寸检查器,您将看到如下图所示。确保滚动视图可以引用高度(与宽度相同)。如果你看不到,那就是你的子视图的scrollview约束问题,然后一一检查。除此之外,您还必须将 scrollView 的顶部、底部、前导尾随设置为超级视图。我假设你已经做到了。

      【讨论】:

      • 我认为这不是滚动视图的功能,动态标签没有更新它的高度以向下推到标签下方
      • 检查其中一个子视图,缺少一些必要的约束。还要为动态标签设置此属性preferredMaxLayoutWidth
      • 我意识到主要问题是什么,对于具有固定高度的最后一个标签,我为顶部和底部间距设置了约束。顶部间距是向下推它所必需的。我使用底部间距来压低作为 UIView 的 superview 的高度,我现在该怎么办?因为这会导致动态标签的高度变得固定
      • 这个问题我用了2天,现在不滚动了
      • 不清楚你说的是什么。也许您可以分享一些代码或您的项目。使用我的答案中的方式可以弄清楚。您可以为任何静态标签设置固定高度,但动态标签除外。您还可以尝试为您的动态标签设置“大于 (>=)”高度限制。
      猜你喜欢
      • 2011-12-31
      • 1970-01-01
      • 1970-01-01
      • 2019-11-23
      • 1970-01-01
      • 1970-01-01
      • 2011-03-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多