【问题标题】:Pass touch from UIScrollView to superview (UIButton)将触摸从 UIScrollView 传递到 superview (UIButton)
【发布时间】:2012-02-08 11:33:50
【问题描述】:

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

我有一个UIButton,其中包含一个UIScrollView,所以按钮是超级视图。

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

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

这可能吗?谢谢!

【问题讨论】:

    标签: iphone ios cocoa-touch uiview uiscrollview


    【解决方案1】:

    通常您不会将滚动视图放在按钮中。而是考虑使用 UIView 作为滚动视图的超级视图。或者告诉我们更多关于你的用例,这样我就能理解你为什么要这样设计。

    【讨论】:

      【解决方案2】:

      就像火心鸟说的那样,这样发表你的观点绝对不常见。

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

      如果你想包括按钮高亮等,那么你可能必须继承 UITapGestureRecognizer 并将 touchesEnded 转发给按钮。

      【讨论】:

        【解决方案3】:

        创建scrollview的子类并覆盖

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

        还继承了 uibutton(Your superview) 并在 touches 中处理 touches 开始。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-11-09
          • 2011-11-21
          • 2014-01-12
          • 2019-08-09
          • 1970-01-01
          • 2023-03-29
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多