swift - UIScrollView 之外的按钮不可触摸
问题描述
我在使用 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
我非常感谢您的建议。谢谢
解决方案
您没有正确描述您的视图层次结构。你实际拥有的是这样的:
Scroll view
Content view
Stack view
Buttons
内容视图是导致问题的原因。它的高度被固定到视图控制器的主视图的高度——即屏幕的高度。但是当然,带有按钮的堆栈视图比屏幕高,以便为您提供滚动的内容。所以堆栈视图的下部,以及堆栈视图底部的按钮,位于内容视图的底部下方。因此他们在他们的superview之外。因此他们是不可触碰的。其父视图(或其父视图,或其父视图,一直到视图层次结构)之外的视图是不可触及的。
推荐阅读
- javascript - 无法在一个 HTML 页面上显示两个 Chart.js
- android - 如何只允许当前用户在 Firebase 中为新用户创建帐户
- regex - 根据前面的单词从段落中提取数值
- ios - 无法在googlemaps swift 5上使用geojson显示标记标题
- c# - 将 Nullable 变量与 Math.Pow 一起使用
- ios - 如何使用 Swift 的步幅在循环中重置种子变量?
- objective-c - 子类继承超类Delegate
- python - 合并熊猫数据框中的多行并按列分组
- variables - 如何通过包共享变量
- html - 如何在角度 9 中实现后退按钮