我一直在努力寻找以下问题的解决方案:
我有一个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我不会得到日志!真是个亏本......
答案 0 :(得分:0)
将按钮带到前面
bringSubviewToFront:
答案 1 :(得分:0)
试试吧。
yourButtonObject.layer.zPosition = 1