Имам малък проблем с обработката на докосвания в моите приложения.
Зададох моите докосвания Започна така:
- (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 с 1 пръст, приложението работи добре и проверява за сблъсък всеки път, когато плъзна пръста си. Проблемът възниква, когато докосна екрана с друг пръст, докато докосвам/плъзгам изображението. Изображението, което докосвам в момента, ще прескочи на другия пръст. Опитах [myView setMultipleTouchEnable:NO];
и използвах NSArray
при докосвания и сравнях [touches count]
с докосването, но не работи. Може ли някой да ми покаже как да настроя uiimageview да действа само при едно докосване. Благодаря.