[英]UIButton not responding to touch in UIScrollView nested in another UIScrollView
我一直在寻找解决以下问题的方法:我有一个UIScrollView
(垂直滚动),其中嵌套了另一个UIScrollView
(水平)。 两个UIScrollViews
还嵌套有UIButtons
。 但是, UIButtons
仅响应父UIScrollView
(垂直)中的触摸。
由于某种原因,水平(嵌套) UIScrollView
的UIButtons
似乎对触摸没有响应。
我已经尝试了以下所有方法:
子类化UIScrollViews并覆盖touchesShouldCancelInContentView方法,如下所示:
override func touchesShouldCancelInContentView(view: UIView) -> Bool {
return !view.isKindOfClass(UIButton)
}
我还尝试从父UIScrollView
取消对嵌套UIScrollView
触摸,但是后来我无法再垂直滚动。
我的两个UIScrollViews
都具有以下内容:
UISCROLLVIEW.delaysContentTouches = false
UISCROLLVIEW.canCancelContentTouches = true
我曾尝试弄乱这些值,但从未设法在嵌套在UIScrollView
的UIButton
上获取触摸事件。 我已经开始怀疑这是否确实可行……尽管看上去AppStore正在这样做。 还是因为他们正在使用UICollectionViews
?
有什么建议么 ?
编辑:我想确保当我单击UIButton时,UIScrollView的触摸事件被取消,因此我记录了UIScrollView的touchesBegan,并确保我在触摸时在UIScrollView EXCEPT中的任何地方都能在控制台中得到打印UIButton。 但是-这很奇怪-如果我继承UIButton并重写touchesBe开始,我将不会获得日志! 真的很失落……
将按钮置于前面
bringSubviewToFront:
试试吧。
yourButtonObject.layer.zPosition = 1
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.