Обработка прикосновений на Iphone - PullRequest
1 голос
/ 22 июля 2010

У меня небольшая проблема с обработкой прикосновений в моих приложениях.

Я установил свои прикосновения Началось так:

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    UITouch *currentTouch = [[event allTouches] anyObject];
    touchPoint = [currentTouch locationInView:self.view];
    if (CGRectContainsPoint(image1.frame, touchPoint)) {
        image1IsTouched = YES;
    }
}

Затем я установил свое движение прикосновения следующим образом:

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{  
    UITouch *currentTouch = [[event allTouches] anyObject];
    currentPoint = [currentTouch locationInView:currentTouch.view];

    if(image1IsTouched == YES) {
        image1.center = CGPointMake(currentPoint.x,currentPoint.y);
        .....
    }
}

Теперь я попробовал мое приложение на реальном устройстве, и там я заметил свою проблему.Пока я касаюсь image1 одним пальцем, приложение работает нормально и проверяет наличие столкновений каждый раз, когда я тащу свой палец.Проблема возникает, когда я касаюсь экрана другим пальцем, касаясь / перетаскивая изображение.Изображение, к которому я сейчас прикасаюсь, перейдет к другому пальцу.Я пытался [myView setMultipleTouchEnable:NO]; & использовать NSArray на касаниях и сравнивать [touches count] с касанием, но он не работает.Может кто-нибудь показать мне, как настроить uiimageview, чтобы действовать только в одно касание.Спасибо.

1 Ответ

0 голосов
/ 22 июля 2010

Во-первых, вы должны использовать UITouch *currentTouch = [touches anyObject];, чтобы получить текущее касание.

Во-вторых, вы должны проверить touches.count == 1, чтобы убедиться, что на экране только один палец, и игнорировать сенсорный ввод, если их несколько, если вы не хотите поддерживать мультитач.

...