我有一个较小的UIButton
,位于较大的UIButton
之上。
现在的问题是,如果我点按较小的UIButton
,它也会触发较大的UIButton
。我用来确定按钮是否被点击的代码是:
if(CGRectContainsPoint(button1.frame, location)) {
}
是否有按钮的属性或某些自动方式使较小的按钮不影响较大的按钮?
我知道我可以改变上面的代码来说明它是否在button1的框架内,而不是在button2内,但还有另一种方法吗?
答案 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
}
}