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

関連する問題