2012-03-12 99 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