【问题标题】:UIButton in a scrollView is not responding滚动视图中的 UIButton 没有响应
【发布时间】:2017-06-05 23:41:21
【问题描述】:

我有一个 ScrollView,里面有一个容器视图。 UIButtons 在容器视图内。 当我运行程序时,位于 ScrollView 末尾的 UIButtons 没有响应。 UITextFields 是响应式的。 然而,在调整了框架之后,我确保 UIScrollView 和容器视图的 origin 和 hightXwidth 都匹配。我用打印语句检查了它。 部分设置:

scrollView.isExclusiveTouch = true
scrollView.delaysContentTouches = false
scrollView.isUserInteractionEnabled = true

ScrollView 的内容大小:

let hightForScrollMenu: CGFloat = 120
scrollView.contentSize = CGSize(width: scrollView.frame.size.width, height: scrollView.frame.size.height+hightForScrollMenu)

输出视图:

检查时:

viewInsideScrollView.frame.size.height = scrollView.frame.size.height
print("Zhenya: ScrollView's frame height is:\(scrollView.frame.size.height) and its origin is \(scrollView.frame.origin)")
print("Zhenya: ViewInsideScrollView's frame heigt is: \(viewInsideScrollView.frame.size.height) and its origin is \(scrollView.frame.origin)")

查看控制器属性:

主视图属性和约束:

ScrollView 属性和约束:

容器视图属性和约束:

【问题讨论】:

标签: ios swift uiscrollview uibutton


【解决方案1】:

容器视图是红色视图?好吧,那么显然按钮在它外面。其父视图之外的按钮是不可点击的。

【讨论】:

  • 是的,ContainerView 是红色视图。它看起来确实像按钮在它之外。但是,在视图结构中,该按钮是容器视图的一部分。它的所有约束都连接到容器视图。
  • 我不关心“看起来像”(尽管它对您为视图着色很有帮助)。我不在乎“一部分”和“连接到”。红色清楚地表明按钮外面是superview。这使得按钮无法点击。故事结局。你的问题得到了回答。您的问题是“按钮没有响应”。我已经告诉过你为什么了。正确。
【解决方案2】:

解决方案是 - 将容器的视图高度设置为 616。 我不明白为什么将其高度设置为“等于 ScrollView”或以编程方式将其修复为等于 scrollView 不起作用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-02-08
    • 2021-01-28
    • 1970-01-01
    • 2014-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多