【问题标题】:Stuck with non scrolling UIScrollView stuffed with an UIStackView卡在塞满 UIStackView 的非滚动 UIScrollView
【发布时间】:2018-12-26 08:26:17
【问题描述】:

我的 VC 是一个垂直的两部分视图控制器,底部是一个 UIScrollView,我在其中添加了一个垂直的 UIStackView,因为它应该垂直滚动。

所有构建步骤都以编程方式完成,如下所示:

    // Add upper part
    view.addSubview(upperView)
    upperView.translatesAutoresizingMaskIntoConstraints = false
    NSLayoutConstraint.activate([
        upperView.topAnchor     .constraint(equalTo: view.safeAreaLayoutGuide.topAnchor),
        upperView.leadingAnchor .constraint(equalTo: view.leadingAnchor),
        upperView.trailingAnchor.constraint(equalTo: view.trailingAnchor),
        upperView.heightAnchor  .constraint(equalTo: view.heightAnchor, multiplier: 0.3)
    ])


    // Add down part

    view.addSubview(scrollView)
    scrollView.translatesAutoresizingMaskIntoConstraints = false
    NSLayoutConstraint.activate([
        scrollView.topAnchor     .constraint(equalTo: upperView.bottomAnchor,  constant:  40),
        scrollView.leadingAnchor .constraint(equalTo: view.leadingAnchor,      constant:  20),
        scrollView.trailingAnchor.constraint(equalTo: view.trailingAnchor,     constant: -20),
        scrollView.bottomAnchor  .constraint(equalTo: view.safeAreaLayoutGuide.bottomAnchor),
    ])

    // Vertical stackview: basically a vertical collection of strips
    scrollView.addSubview(stackView)
            stackView.spacing = 5
            stackView.distribution = .fill
            stackView.alignment = .leading
            stackView.axis = .vertical

            stackView.translatesAutoresizingMaskIntoConstraints = false
            NSLayoutConstraint.activate([
                stackView.topAnchor   .constraint(equalTo: scrollView.topAnchor),
                stackView.leftAnchor  .constraint(equalTo: scrollView.leftAnchor),
                stackView.widthAnchor .constraint(equalTo: scrollView.widthAnchor),
                stackView.bottomAnchor.constraint(equalTo: stackView.bottomAnchor)
            ])

如果我破坏 Xcode 并打开视图层次结构调试器,我看到它抱怨内容大小: Scrollable content size is ambiguous for UIScrollView。

当我将顶部和底部堆栈视图约束到滚动视图时,它是如何产生的?

【问题讨论】:

    标签: swift uiscrollview uistackview


    【解决方案1】:

    您可能需要更改此设置

    stackView.bottomAnchor.constraint(equalTo: stackView.bottomAnchor)
    

    stackView.bottomAnchor.constraint(equalTo: scrollView.bottomAnchor)
    

    【讨论】:

    • +Sh_Khan:哎呀,工作太多我该睡觉了。非常感谢让我看到:-)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-04-23
    • 2021-09-01
    • 2016-01-24
    • 1970-01-01
    • 2021-01-13
    • 2016-11-28
    • 2019-06-16
    相关资源
    最近更新 更多