所以我有一个应用程序,从摄像机中获取图像,并在图像上进行一些处理后将信息显示到屏幕上。我添加了一个暂停按钮,这样用户就可以"冻结"屏幕上最近的结果。
暂停工作,但它是一个周期后。当按钮按下记录时,下一个图像已经在处理中,因此屏幕上锁定的结果实际上来自后续图像。我已经尝试添加延迟,让用户有时间按下暂停使用:
[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);
}
谢谢。
您不需要实现延迟。试试这个:
每次在屏幕上呈现新图像时,将旧图像保存在previousImage
变量中。当用户点击暂停按钮时,只需将当前屏幕上的内容替换为previousImage
的内容。