UIPanGestureRecognizer: определение местоположения касания в конце свайпа

Я вызываю метод addProjectile в методе touchesEnded. addProjectile получает NSSet касаний, которые получает метод touchesEnded. Для простоты я разместил только соответствующий код на свой вопрос. Итак, просто для ясности:

-(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.


person MSU_Bulldog    schedule 10.01.2015    source источник


Ответы (1)


Посмотрите на 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));
    }
}
person n00bProgrammer    schedule 10.01.2015
comment
Именно то, что мне нужно - person MSU_Bulldog; 10.01.2015