我使用以下代码捕获整个屏幕的屏幕截图,包括状态栏和 TabBar :
UIGraphicsBeginImageContextWithOptions(self.view.bounds.size, NO, [UIScreen mainScreen].scale);
[self.view drawViewHierarchyInRect:self.view.bounds afterScreenUpdates:NO];
UIImage *imageNew = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
UIImageWriteToSavedPhotosAlbum(imageNew, nil, nil, nil);
它会绘制除状态栏和 TabBar
之外的所有内容答案 0 :(得分:0)
尝试以下代码。
CALayer *layer = [[UIApplication sharedApplication] keyWindow].layer;
CGFloat scale = [UIScreen mainScreen].scale;
UIGraphicsBeginImageContextWithOptions(layer.frame.size, NO, scale);
[layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *screenshot = UIGraphicsGetImageFromCurrentImageContext();
UIImageWriteToSavedPhotosAlbum(screenshot, nil, nil, nil);
我在我的应用程序中对其进行了测试,它采用了 Tabbar 的屏幕截图。
希望它适合你。
答案 1 :(得分:0)
只有在viewDidAppear
上确定每个UI组件后,才能调用屏幕截图捕获代码块。
-(void) viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
//Screen capturing code goes here...
}