【发布时间】:2016-11-22 03:20:16
【问题描述】:
我在 ScrollView 内的视图内的视图中有一个按钮:
UIScrollView
-ContentView
--PhoneNumberView
---UIButton
如果 ScrollView 的滚动功能被禁用,则按钮会正常单击。但是,如果启用了滚动,则该按钮似乎已禁用。
这就是我发送 ScrollView 内容大小的方式:
var contentRect = CGRectZero;
for view in self.contentView.subviews {
contentRect = CGRectUnion(contentRect, view.frame)
}
scrollView.contentSize = contentRect.size
scrollView.contentSize.height = scrollView.contentSize.height+20
我也设置了这些属性
scrollView.userInteractionEnabled = true
scrollView.exclusiveTouch = true
scrollView.canCancelContentTouches = true
scrollView.delaysContentTouches = true
我终于尝试创建 UIScrollView 的子类,结果如下:
class myScrollView: UIScrollView {
override func touchesShouldCancelInContentView(view: UIView) -> Bool {
return false
}
}
但只要有任何滚动,按钮仍然不活动。
我该如何解决这个问题?
【问题讨论】:
-
我有几个问题 - 1. 为什么要从代码本身设置内容大小(您没有设计带有自动布局的 UI)。 2.你为什么要改变scrollView的属性,比如独占触摸之类的,好像要启用和禁用滚动,那么滚动属性就足够了。
-
一切都与内容大小有关。由于内容大小设置错误,滚动视图上的可见视图不可点击。
-
因为我有一个 textView 可能会扩大或缩小。
-
最好在按钮上使用
UITapGestureRecognizer
标签: ios swift scroll uiscrollview