从UIScrollView到superview(UIButton)的触摸

可能是重复,但我找不到我的问题的确切答案今晚搜索…

我有一个包含UIScrollViewUIButton ,因此该按钮是superview。

我想要做的就是将UIScrollView子视图中的单击事件传递给UIButton超级视图,并让UIButton处理它,就像用户直接点击按钮一样。

将滚动视图的userInteractionEnabled属性设置为NO对我来说不起作用,因为用户可以滚动内容。 这样做会破坏滚动视图的目的。

这可能吗? 谢谢!

就像huoxinbird说的那样,这样的观点绝对不常见。

如果您对此非常坚定,可以使用UITapGestureRecognizer并让它调用按钮的目标和选择器。

如果你想要包含按钮高亮等等,那么你可能必须inheritanceUITapGestureRecognizer并将touchesEnded转发到按钮。

创建scrollview和override的子类

 -(BOOL)touchesShouldBegin:(NSSet *)touches withEvent:(UIEvent *)event inContentView:(UIView *)view { return YES; } 

也是uibutton(你的超级视图)的子类,并开始触摸触摸。

通常,您不会将scrollview放在按钮内。 而是考虑使用UIView作为scrollview的超级视图。 或者告诉我们更多关于你的用例的信息,这样我就能理解为什么你必须以这种方式进行设计。