自从上次触摸iOS中的特定viewcontroller以来,如何检测用户不活动?

时间:2014-09-23 17:51:44

标签: ios cocoa-touch uikit user-interaction

当用户没有触摸特定屏幕3秒钟时,我需要在视图控制器中执行特定操作。

我怎么能在iOS中这样做?

2 个答案:

答案 0 :(得分:3)

覆盖视图的触摸开始方法并在触摸时重置计时器。

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    [self.timer invalidate];
    self.timer = [NSTimer scheduledTimerWithTimeInterval:3.0 target:self selector:@selector(inactivityTimerFired) userInfo:nil repeats:NO];

    [super touchesBegan:touches withEvent:event];
}

如果需要,您可以定位视图控制器而不是self

答案 1 :(得分:1)

  1. NSTimer属性/ ivar添加到视图控制器
  2. 向您要监控的视图添加点按gesture recognizer(或使用touchesBegan:
  3. 点击点击识别器时,以3.0 s的间隔启动计时器以调用功能
  4. 如果在计时器调用的函数之前命中了点击识别器,则使计时器无效并将其设置为nil
  5. 如果计时器正在呼叫的功能被点击,则用户已处于非活动状态3秒钟