Xcode添加延迟按钮按下可以注册

时间:2011-12-19 16:15:47

标签: iphone objective-c uibutton delay

所以我有一个应用程序从摄像机接收图像,并在对图像进行一些处理后将信息显示在屏幕上。我添加了一个暂停按钮,以便用户可以“冻结”屏幕上的最新结果。

暂停有效,但落后一个周期。当记录按钮按下时,下一个图像已经被处理,因此锁定在屏幕上的结果实际上来自后续图像。我尝试添加延迟以允许用户有时间按下暂停:

[self performSelector:@selector(waitForPause) withObject:nil afterDelay:2];

但这并没有像我期望的那样发挥作用。关于如何正确处理此暂停的任何想法?

编辑:我注意到AppDelegate文件有一些似乎可以处理这类事情的函数。也就是说,applicationWillResignActive可以用来根据苹果文档暂停游戏。有没有人用这个目的?该方法目前是空的。我需要添加什么才能让它根据按下按钮暂时暂停应用程序?

更新:以下是我目前如何实施和处理暂停按钮按下。

//Pause Button
self.pauseButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[pauseButton addTarget:self 
                action:@selector(pauseButtonPress:)
      forControlEvents:UIControlEventTouchDown];
[pauseButton setTitle:@"Pause" forState:UIControlStateNormal];
pauseButton.frame = CGRectMake(80.0, 100.0, 160.0, 40.0);
[self.view addSubview:pauseButton];

- (void) pauseButtonPress:(id) sender {

    [pauseButton setHidden: YES];
    [playButton setHidden: NO];
    continueRunningScript = NO;
    NSLog(@"paused");
    NSLog(@"Current Result: %@", result_string);

}

感谢。

1 个答案:

答案 0 :(得分:0)

您无需实施延迟。试试这个:

每次向屏幕渲染新图像时,请将旧图像保存在previousImage变量中。当用户点击暂停按钮时,只需将previousImage的内容替换为当前屏幕上的内容。