在我的应用程序中,我需要捕捉屏幕上手指的确切数量,我尝试了两种方法,但我有 2 个不同的问题。
第一种方式:
- (void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
NSArray *allTouches = [touches allObjects];
int count = [allTouches count];
NSLog(@"number of touch:%d", count);
}
如果我同时使用更多手指,这会给我不准确的触摸次数。
第二种方式:
- (void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
int num = [touches count];
totalTouch = totalTouch+num;
NSLog(@"number of touch:%d", totalTouch);
}
通过这种方式,我使用了一个全局变量(totalTouch),每次调用 touchbegan 时都会增加它,并且我有完美的触摸次数。自然地,我在 touchend 中将此 var 设置为 '0'
- (void) touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event{
totalTouch = 0;
}
我的问题是,用第二种方式我在 touchbegan 中进行控制,这是:
- (void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
int num = [touches count];
totalTouch = totalTouch+num;
if (totalTouch == numberToVerify){
//IT ENTER HERE EVERYTIME INSIDE THIS IF
}
else{
}
}
所以每次它进入 if 条件时,我不想要它,我只想在我有最终的触摸次数时才做这个控制......