2012-01-28 5 views
0

私は小さいほうがUIButtonで、大きいほうの上にありますUIButtonです。大きなUIButtonの上にある小さなUIButton

今問題は、私が小さなUIButtonをタップすると、より大きなUIButtonがトリガーされるという問題です。私はボタンがタップされたかどうかを判断するために使用しているコードは次のとおりです。ボタンのプロパティまたは小さなボタンが大きなボタンに影響を与えないようにするいくつかの自動化された方法は、

if(CGRectContainsPoint(button1.frame, location)) { 
} 

ありますか?

上記のコードを変更して、button1のフレーム内でbutton2内ではないが、別の方法でこれを行うことができますか?

+0

UIButtonの標準的なターゲット/アクションの方法を使用しているだけではなく、タップされていることを伝えていると言っていますか?私がXcodeの大きなボタンの中に小さなボタンをドラッグするだけであれば、すべてがデフォルトで望むように動作します。小さなボタンは何らかの理由で大きなボタンのサブビューですか? – UIAdam

+0

正しいですが、ボタンを含むビューでタップジェスチャ認識機能を使用しています。小さなボタンは大きなボタンのサブビューではありません。 – codeman

+0

実際のUIButtonsの場合、タップを検出するためにデフォルトの動作を使用していないのはなぜですか? – UIAdam

答えて

0

UIControl(UIButtonのスーパークラス)は、アクションセレクタを使用して唯一のパラメータとしてターゲットに渡します。それを使用して、それはまさにこのような場合です!

[smallButton addTarget:self action:@selector(doStuff:) forControlEvents:UIControlEventTouchUpInside]; 
[bigButton addTarget:self action:@selector(doStuff:) forControlEvents:UIControlEventTouchUpInside]; 

// ... 

- (void) doStuff:(UIButton *)btn 
{ 
    if (btn == smallButton) 
    { 
     // smaller button was clicked 
    } 
    else 
    { 
     // bigger button was clicked 
    } 
} 
関連する問題