在我的应用程序中,我有一个ui图像视图,其中一个部分被移除覆盖在另一个图像视图的顶部,因此用户可以从相机胶卷上传图片并在屏幕上操作。我想使用以下代码将这些图像保存在一起以拍摄屏幕。然而,因为它沿着底部采用顶部栏和标签视图,是否可以通过屏幕截图按钮指定屏幕的特定区域?
我可以操作以下代码,这样就不会对整个屏幕进行屏幕截图,所以我可以省略条形按钮吗?
if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)])
UIGraphicsBeginImageContextWithOptions(self.view.window.bounds.size, NO, [UIScreen mainScreen].scale);
else
UIGraphicsBeginImageContext(self.view.bounds.size);
[self.view.window.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
UIImageWriteToSavedPhotosAlbum(viewImage, nil, nil, nil);
答案 0 :(得分:3)
您可以随时使用UIView
,
UIGraphicsBeginImageContext(view.bounds.size);
[view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
因此,基本上不是从整个窗口的视图中获取图层...您只需从您感兴趣的视图中获取图层,然后从中创建图像。
然后将图像保存到您想要的任何位置。