UIScrollView外部的按钮不可触摸

时间:2018-10-07 13:31:30

标签: swift uiscrollview uistackview

UIScrollView面临一个令人烦恼的问题,如果我的按钮不在滚动视图之外,则无法触摸它们,但我现在不知道如何解决

我已经尝试了一些方法,但到目前为止没有帮助

    override func viewDidLayoutSubviews() {
    super.viewDidLayoutSubviews()

    var contentRect = CGRect.zero

    for view in scrollContentView.subviews {
        contentRect = contentRect.union(view.frame)
    }

    for view in scrollContentView.subviews {
        contentRect = contentRect.union(view.frame)
    }

    scrollView.contentSize.height = contentRect.size.height
}

上面的代码仅有助于使滚动视图可滚动

enter image description here

我还在此链接中附加了示例项目 https://drive.google.com/open?id=19U8jecDNQbAnTFbG36KMRxHfaLLcaLDq

非常感谢您的建议。谢谢

1 个答案:

答案 0 :(得分:1)

您没有正确描述视图层次结构。您实际拥有的是:

Scroll view
    Content view
        Stack view
            Buttons

内容视图是引起问题的原因。它的高度固定到视图控制器主视图的高度,即屏幕的高度。但是,当然,带按钮的堆栈视图比屏幕要 taller ,以便为您提供滚动的内容。因此,堆栈视图的下部以及位于堆栈视图底部的按钮位于内容视图的底部下方。因此,他们在他们的监督之外。因此它们是不可触摸的。在其超级视图(或超级视图,或超级视图,一直到视图层次结构中)之外的视图是不可触摸的。

相关问题