【问题标题】:iOS: Programatic ScrollView not scrolling (contentSize set)iOS:程序化 ScrollView 不滚动(contentSize 设置)
【发布时间】:2021-06-15 05:12:13
【问题描述】:

我在代码中创建了一个 scrollView 并为其添加了几个标签:

private let scrollView: UIScrollView = {
    let scrollView = UIScrollView()
    scrollView.backgroundColor = .systemTeal
    return scrollView
}()

在 viewDidLoad 中:

view.addSubview(scrollView)
[view1, label1, label2, label3, label4, label5].forEach { scrollView.addSubview($0) }

setViewContraints()

然后在viewDidLayoutSubviews中:

override func viewDidLayoutSubviews() {
    scrollView.frame = view.bounds
    scrollView.contentSize = CGSize(width: view.width, height: view.height + 300)
}

第一个view锚定到scrollview safeAreaLayoutGuide topAnchor,然后每个后续标签的topAnchor都锚定到前一个bottomAnchor的底部。每个视图的尾随和前导锚点都锚定到滚动视图的尾随和前导锚点。这是在 setViewConstraints() 中完成的。

view.width 和 view.height 分别返回 view.frame.size.width 和 view.frame.size.height。

所有内容看起来都很好,但滚动视图不起作用。我做错了什么?

【问题讨论】:

  • 滚动视图子视图应限制在滚动视图的.contentLayoutGuide。如果您的约束设置正确,您应该设置.contentSize。显示您的setViewContraints() 代码。
  • @DonMag 是的,我最终删除了 contentSize。问题是我没有将最后一个视图的底部锚定锚定到滚动视图的底部锚点。

标签: ios swift uiscrollview


【解决方案1】:

我意识到我需要将最底部视图的底部锚点设置为滚动视图的底部锚点。成功了。

【讨论】:

    猜你喜欢
    • 2017-01-26
    • 1970-01-01
    • 1970-01-01
    • 2020-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多