1

Я вызываю метод в методе touchesEnded, называемом addProjectile. addProjectile получает NSSet штрихов, который получает метод touchesEnded. Для простоты я опубликовал только соответствующий код для моего вопроса. Таким образом, просто чтобы быть ясно:UIPanGestureRecognizer: обнаружение местоположения касания в конце салфетки

-(void) touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event { 
    [self addProjectile:touches]; } 
-(void) addProjectile:(NSSet *)touches {//do stuff } 

Я хотел бы назвать addProjectile в конце метода UIPanGestureRecognizer называется swipeRight и отправить правильный NSSet прикосновений.

-(void)swipedRight:(UIPanGestureRecognizer *)recognizer { 
    CGPoint panned=[recognizer translationInView:self.view]; 
    if(panned.x>50){//do stuff } 
    else { 
    NSSet *touches; <-- this is what I need to get 
    [self addProjectile:touches]; 

Так что мой вопрос, как я могу получить правильный NSSet прикосновений (что было бы, когда пользователь взял его/ее палец) в конце swipedRight: правильно выполнить метод addProjectile.

ответ

6

Посмотрите на UIGestureRecognizerState. Это то, что вам нужно.

Пример кода (предположение здесь в том, что вам нужно только точки касания, когда пользователь заканчивает панорамирование т.е. поднимает палец):

-(void)swipedRight:(UIPanGestureRecognizer *)panGesture { 

    if ([panGesture state] == UIGestureRecognizerStateEnded) { 

     //User touch has ended 

     CGPoint touchUpPoint = [panGesture translationInView:self.view]; // or `locationInView:` 

     NSLog(@"__TOUCH_END_POINT__ = %@", NSStringFromCGPoint(touchUpPoint)); 
    } 
} 
+0

Именно то, что мне нужно было –

+0

Рад, что смог помочь. – n00bProgrammer

Смежные вопросы