所以我有一个应用程序从摄像机接收图像,并在对图像进行一些处理后将信息显示在屏幕上。我添加了一个暂停按钮,以便用户可以“冻结”屏幕上的最新结果。
暂停有效,但落后一个周期。当记录按钮按下时,下一个图像已经被处理,因此锁定在屏幕上的结果实际上来自后续图像。我尝试添加延迟以允许用户有时间按下暂停:
[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);
}
感谢。
答案 0 :(得分:0)
您无需实施延迟。试试这个:
每次向屏幕渲染新图像时,请将旧图像保存在previousImage
变量中。当用户点击暂停按钮时,只需将previousImage
的内容替换为当前屏幕上的内容。