мультитач прикосновения - PullRequest
2 голосов
/ 17 июня 2010

У меня возникла небольшая проблема при попытке прикосновения. Начал отвечать на мультитач.

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{

NSSet *allTouches = [event allTouches]; 
for (UITouch *touch in allTouches) 
{ 
CGPoint location = [touch locationInView:touch.view];
if(CGRectContainsPoint(snare.frame, location) && lastButton != snare) {
    //Swap Image
    snareImg.image = snareImgDown;
    [self performSelector:@selector(swapBack) withObject:nil afterDelay:0.1];
    //Play Sound
    NSString *path = [[NSBundle mainBundle] pathForResource:@"snare" 
                                                     ofType:@"wav"];
    SystemSoundID soundID;
    AudioServicesCreateSystemSoundID((CFURLRef)[NSURL fileURLWithPath:path]
                                     , &soundID);
    AudioServicesPlaySystemSound (soundID); 
    //
    lastButton = snare;
}
else if(CGRectContainsPoint(hiHat.frame, location) && lastButton != hiHat) {
    //Play Sound
    NSString *path = [[NSBundle mainBundle] pathForResource:@"hi_hat" 
                                                     ofType:@"wav"];
    SystemSoundID soundID;
    AudioServicesCreateSystemSoundID((CFURLRef)[NSURL fileURLWithPath:path]
                                     , &soundID);
    AudioServicesPlaySystemSound (soundID); 
    //
    lastButton = hiHat;
}

Я не знаю, как настроить его так, чтобы он реагировал на мультитач, сейчас касания начинаются, работает только с 1 нажатием. Я знаю там что-то вроде того, что я принимаю для (UITOuch * t в чем-то), я не могу вспомнить, как это работает точно.

Кто-нибудь знает, как это сделать?

1 Ответ

8 голосов
/ 17 июня 2010

По умолчанию вы получите только одно касание, если не установите multipleTouchEnabled = YES.Тогда ваш код должен работать как положено.

...