【问题标题】:prevent UIScrollView to send touches to subview防止 UIScrollView 向子视图发送触摸
【发布时间】:2011-08-09 04:00:05
【问题描述】:

如何防止 UIScrollView 向其子视图发送触摸?

【问题讨论】:

  • 我不认为标题说明了一切...您能否(糖衣)详细说明...您是否希望您的子视图在您滚动 UIScrollView 时保持静止?
  • 好吧,我的子视图在屏幕上绘制东西。有时,当我滚动/放大时,会调用触摸方法并开始绘制,即使我只是想缩放/平移。因此,当我缩放/平移时,我希望子视图不接收任何触摸事件,因此它们不会绘制东西。
  • 滚动/缩放所需的触摸与绘图所需的触摸完全不同吗?它们很可能是......所以你只需要区分(通过使用布尔值),因此当你检测到滚动/缩放时不要画东西

标签: objective-c ios cocoa-touch uiscrollview


【解决方案1】:

你的subview.userInteractionEnabled = NO;

【讨论】:

    【解决方案2】:

    从 UIScrollView 继承并通过以下方式定义自己的 hitTest:

    @implementation MyScrollView
    
    - (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event {  
        return [self pointInside:point withEvent:event] ? self : nil;     
    }
    
    @end
    

    因此,触摸不会被转发到内部子视图中,而是停留在 UIScrollView 的级别上。

    【讨论】:

      猜你喜欢
      • 2012-08-10
      • 1970-01-01
      • 2013-10-01
      • 1970-01-01
      • 2023-03-29
      • 1970-01-01
      • 2011-09-15
      • 2012-01-31
      • 1970-01-01
      相关资源
      最近更新 更多