滚动视图底部的按钮不响应

Posted

技术标签:

【中文标题】滚动视图底部的按钮不响应【英文标题】:Buttons at Bottom of Scrollview Don't Respond 【发布时间】:2016-08-15 23:32:50 【问题描述】:

我有一个 UIScrollView,里面有几个按钮。滚动视图底部的按钮是可见的,但按下时不响应。我的问题似乎与this *** Question 中的问题相同,但接受的答案似乎无法解决我的问题;滚动视图的框架、滚动视图的 contentSize 以及滚动视图内部的视图框架(也是有问题的按钮的父视图)的宽度均为 414pt,高度为 900pt。这绝对应该足够大,可以包含没有响应的按钮。

编辑: 我在 Interface Builder 中创建了滚动视图。滚动视图中容器视图的边缘被固定到滚动视图的边缘。

我尝试添加这些代码行:

    scrolling.frame = CGRect(x: 0, y: 0, width: 414, height: 900)
    viewInsideScrollview.frame = CGRect(x: 0, y: 0, width: 414, height: 900)
    scrolling.contentSize = CGSizeMake(414, 900)
    self.view.frame = CGRect(x: 0, y: 0, width: 414, height: 900)

添加这些行不会改变滚动视图的外观或行为(滚动正常,但底部按钮无响应。)

【问题讨论】:

你确定按钮是滚动视图的子视图之一吗? 请提供您的部分代码,否则无法给您正确答案。 我在编辑中添加了一些代码。 您还没有证明viewInsideScrollviewscrolling 的子视图(如果那是滚动视图)。 在 Interface Builder 中,我可以看到 viewInsideScrollviewscrolling 的子视图(您的权利,即滚动视图)。我遇到问题的按钮是viewInsideScrollview 的子视图。 【参考方案1】:

UIScrollView 通过其内部的视图推断其大小。您在界面构建器中创建了视图,这可能就是您添加的代码行不起作用的原因(我不完全确定它们为什么不起作用)。但是,可行的是对您的viewInsideScrollview 设置约束,以便scrolling 扩展到完整的内容大小。例如,如果您的viewInsideScrollview 中有 10 个按钮,您应该在最顶部的按钮上设置顶部空间约束、前导和尾随约束、在按钮之间提供间距的约束以及在最底部的按钮上设置底部空间约束. scrolling 将展开以容纳所有按钮,您将能够选择所有按钮。

【讨论】:

以上是关于滚动视图底部的按钮不响应的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Swiftui 的主视图底部的滚动视图中放置一个非粘性按钮? Spacer 在滚动视图中似乎没有效果

iOS - 使用滚动视图的奇怪约束

iOS 8 - 水平滚动视图中的按钮没有响应

UIScrollview 底部的额外空白区域

标签不显示滚动视图中的所有文本

滚动视图顶部的静态按钮 android studio