我需要截取应用程序的屏幕截图。有一个按钮可以触发它,但我不想让按钮出现在屏幕截图中。
我有以下代码:
- (IBAction) takePicture:(id) sender {
button.hidden = YES;
CGImageRef screen = UIGetScreenImage();
UIImage* image = [UIImage imageWithCGImage:screen];
CGImageRelease(screen);
// Save the captured image to photo album
UIImageWriteToSavedPhotosAlbum(image, self, @selector(image:didFinishSavingWithError:contextInfo:), nil);
button.hidden = NO;
}
但按钮仍然出现在屏幕截图中。我做错了什么?
最佳答案
我认为你在 runloop 可以刷新 View 之前捕获屏幕(即在它可以隐藏按钮之前)
你应该试着把你的代码改成这样:
- (IBAction) takePicture:(id) sender {
button.hidden = YES;
[self performSelector:@selector(takeScreenShot) withObject:nil afterDelay:0.1];
}
- (void)takeScreenShot {
CGImageRef screen = UIGetScreenImage();
UIImage* image = [UIImage imageWithCGImage:screen];
CGImageRelease(screen);
// Save the captured image to photo album
UIImageWriteToSavedPhotosAlbum(image, self, @selector(image:didFinishSavingWithError:contextInfo:), nil);
button.hidden = NO;
}
这应该是运行循环移除按钮后的截图。
关于iphone - 在截图之前隐藏 UIButton,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5144239/