Как отслеживать длинное удержание для пальца в iPhone?

StackOverflow https://stackoverflow.com/questions/2215784

  •  19-09-2019
  •  | 
  •  

Вопрос

Как я мог отслеживать событие, такое как экран Touch on iPhone в течение 2 секунд. Как в Safari, чтобы сохранить изображение для изображения, добавленного в UIWebView?

Это было полезно?

Решение

Создать NSTIMER с +scheduledTimerWithTimeInterval:target:selector:userInfo:repeats: По вашему мнению -touchesBegan:withEvent: метод и отменить его (используя -invalidate) в -touchesEnded:withEvent:. Анкет Если метод, который его точки селектора вызывают, то пользователь удерживал пальцем на вид, на любую продолжительность, на которую вы устанавливаете интервал таймера. Пример:

Интерфейс (.h):

@interface MyView : UIView
    ...
    NSTimer *holdTimer;
@end

Реализация (.m):

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)evt
{
    [holdTimer invalidate];
    holdTimer = [NSTimer scheduledTimerWithTimeInterval:2.0 target:self selector:@selector(touchWasHeld) userInfo:nil repeats:NO];
}

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)evt
{
    [holdTimer invalidate];
    holdTimer = nil;
}

- (void)touchWasHeld
{
    holdTimer = nil;
    // do your "held" behavior here
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top