我的应用程序有2个按钮,靠近。
我试图只用一根手指触摸这两个按钮。
有一种方法可以同时检查触摸是否在这两个按钮上?
答案 0 :(得分:1)
触摸是一个重点。虽然建议控制合理的尺寸,但当您触摸屏幕时,您会得到一个点,而不是一个区域。这一点将在一个或另一个控件中。
您可以尝试拦截触摸并将其转换为更大的矩形,看看它是否同时覆盖了这两个按钮。
修改强>
看一下这个SO question,看看有哪种拦截方式。
答案 1 :(得分:1)
你可以(但真的不应该)用一根手指触摸2个按钮,如Abizern所说,但你也可以调用2种方法进行一键式触摸。例如:
-(void)viewDidLoad {
self.myButton = /*initialize the button*/;
[self.myButton addTarget:self action:@selector(callTwoMethods) forControlEvents:UIControlEventTouchUpInside];
}
-(void)callTwoMethods {
[self methodOne];
[self methodTwo];
}
然而,对于你正在尝试做的事情,这并不总是正确的行为,所以从iOS 3开始,我们可以使用UITouch和事件机制进行一些跳汰来计算出很多:
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
if ([touches count] == 2) {
//we are aware of two touches, so get them both
UITouch *firstTouch = [[allTouches allObjects] objectAtIndex:0];
UITouch *secondTouch = [[allTouches allObjects] objectAtIndex:1];
CGPoint firstPoint = [firstTouch locationInView:self.view];
CGPoint secondPoint = [secondTouch locationInView:self.view];
if ([self.firstButton pointInside:firstPoint withEvent:event] && [self.secondButton secondPoint withEvent:event] || /*the opposite test for firstButton getting the first and secondButton getting the second touch*/) {
//Do stuff
}
}
}