2011-06-20 10 views
2

私は3つのサブビューを持つUIViewを持っています。私はスーパービューとサブビューにも触れますが、サブビューはタッチを傍受します。これどうやってするの?おかげさまで UPD:もっと単純な方法は存在しないのですか?それでは、相続を離れてイベントをキャッチする方が簡単です。親ビューの操作を処理する

答えて

2

あなたは、彼らがタッチイベントをインターセプトしません、そして、彼らは唯一の親ビューに送信されます。この方法で

[subView setUserinteractionEnabled: NO]; 

を使用して受け入れてタッチからサブビューを無効にすることができます。

両方のビューでイベントを受信する場合は、サブビューでイベントをキャッチし、親ビューに手動で送信できます。

+1

実際に悪い考えではありません。 +1 –

+0

サブビューでイベントをキャッチして親ビューに手動で送信する方法について、いくつかのガイダンスを聞いてみてください。 :] – weienw

2

あなたは以下のようにサブビューでタッチイベントをオーバーライドする必要があります:

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
    [self.nextResponder touchesBegan: touches withEvent:event]; 
    [super touchesBegan: touches withEvent: event]; 
} 

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
    [self.nextResponder touchesMoved: touches withEvent:event]; 
    [super touchesMoved: touches withEvent: event]; 
} 

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event { 
    [self.nextResponder touchesEnded: touches withEvent:event]; 
    [super touchesEnded: touches withEvent: event]; 
} 
+0

あなたは何をしようとしているのか分かりませんが、各呼び出しがsuperと* sefl.nextResponderを呼び出す必要があると思います。 ' - (void)touches *:withEvent:'のドキュメントを参照してください。 – Olie

関連する問題