【问题标题】:Buttons outside of UIScrollView are not touchableUIScrollView 之外的按钮不可触摸
【发布时间】:2018-10-07 13:31:30
【问题描述】:

我在使用 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
}

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

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

非常感谢您的建议。谢谢

【问题讨论】:

  • 我知道你能给我一些想法来解决我的问题吗?我想这是限制问题,但不确定。我现在正在寻找的是一个解决方案。谢谢
  • 我的问题是我在滚动视图中添加了一个堆栈视图以使其可滚动。当我将滚动视图滚动到底部时,堆栈视图的内容大于屏幕高度。有些按钮是手指无法触摸的。这些不可触摸的按钮很重要

标签: swift uiscrollview uistackview


【解决方案1】:

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

Scroll view
    Content view
        Stack view
            Buttons

内容视图是导致问题的原因。它的高度被固定到视图控制器的主视图的高度——即屏幕的高度。但是当然,带有按钮的堆栈视图比屏幕高,以便为您提供滚动到的内容。所以堆栈视图的下部,以及堆栈视图底部的按钮,都在内容视图的底部下方。因此,他们在他们的超级视图之外。因此他们是不可触碰的。其父视图(或 its 父视图,或 父视图,一直到视图层次结构)之外的视图是不可触摸的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-19
    • 1970-01-01
    相关资源
    最近更新 更多