UIButton没有响应UIScrollView中的触摸嵌套在另一个UIScrollView中

时间:2015-10-09 09:28:29

标签: ios swift uiscrollview uibutton

我一直在努力寻找以下问题的解决方案: 我有一个UIScrollView(垂直滚动),其中我嵌套了另一个UIScrollView(水平)。 UIScrollViews也嵌套了UIButtons。但是,UIButtons仅响应父UIScrollView(垂直)中的触摸。

由于某些原因,水平(嵌套)UIButtons中的UIScrollView似乎没有响应触摸。

我尝试了以下所有方法:

对UIScrollViews进行子类化并覆盖touchesShouldCancelInContentView方法,如下所示:

override func touchesShouldCancelInContentView(view: UIView) -> Bool {        

   return !view.isKindOfClass(UIButton)

} 

我还尝试从父UIScrollView中取消嵌套UIScrollView的触摸,但之后我再也无法垂直滚动。

我的UIScrollViews都有以下内容:

UISCROLLVIEW.delaysContentTouches = false
UISCROLLVIEW.canCancelContentTouches = true

我已尝试搞乱这些值,但从未设法在嵌套UIButton嵌套的UIScrollView上获得触摸事件。我已经开始怀疑这是否真的有可能......虽然AppStore似乎正在这样做。或者是因为他们正在使用UICollectionViews

有什么建议吗?

编辑: 当我点击UIButton时,我想确保UIScrollView的触摸事件被取消,所以我记录了UIScrollView的touchesBegan,当我触摸UIButton时,我确实在UIScrollView EXCEPT的控制台中随处可见。然而 - 这很奇怪 - 如果我继承UIButton并覆盖touchesBegan我不会得到日志!真是个亏本......

2 个答案:

答案 0 :(得分:0)

将按钮带到前面

bringSubviewToFront:

答案 1 :(得分:0)

试试吧。

yourButtonObject.layer.zPosition = 1