较大的UIButton顶部的小UIButton

时间:2012-01-28 20:39:45

标签: iphone objective-c ios

我有一个较小的UIButton,位于较大的UIButton之上。

现在的问题是,如果我点按较小的UIButton,它也会触发较大的UIButton。我用来确定按钮是否被点击的代码是:

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

是否有按钮的属性或某些自动方式使较小的按钮不影响较大的按钮?

我知道我可以改变上面的代码来说明它是否在button1的框架内,而不是在button2内,但还有另一种方法吗?

1 个答案:

答案 0 :(得分: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
    }
}