2012-03-12 67 views
0

我有一个像混音器的东西,当我按下按钮时它会打开音轨音量。如何使可能与子UIView绘制在父UIView边界之外的交互?

为了避免使视图大于需要,我正在绘制边界外的音量滑块。现在的事情是,我有触摸被下面的滑块处理,而不是它们自己的滑块。

如何让一个UIView的孩子在父母之外接受触摸,但超出了其他任何东西,被绘制?

这可能吗?

我试着在下面的链接提示点击测试方法都没有成功:

interaction beyond bounds of uiview

感谢,

随着我的问候,

努诺·桑托斯

回答

1

我有找到了解决这个问题的办法。基本上我需要重写方法

-(BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event 

其中

“返回一个布尔值指示所述接收器是否包含指定点”。

首先我用超级视图测试点。如果它没有返回,我将测试在父对象边界外绘制的对象。

-(BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event 
{ 
    if ([super pointInside:point withEvent:event]) 
    { 
     return YES; 
    } 
    else 
    { 
     id elem; 

     NSEnumerator * enumerator = [tracks objectEnumerator]; 

     while(elem = [enumerator nextObject]) 
     { 
      LKTrack *track = (LKTrack*) elem; 

      if ([track pointInside:[self convertPoint:point toView:track] withEvent:event]) 
      { 
       return YES; 
      } 
     } 
    } 

    return NO; 
} 
-1

在上面的答案中,什么是'曲目',你是如何得到它的?

+1

这不是一个答案。你应该删除它并在相关答案下发表评论。 – Logan 2014-05-15 05:16:22