-1

在我的应用程序中,我有一个 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);           
4

1 回答 1

3

好吧,您总是可以从UIView,

UIGraphicsBeginImageContext(view.bounds.size);
[view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

所以,基本上不是从整个窗口的视图中获取图层......您只需从您感兴趣的视图中获取图层,然后从中创建图像。

然后将图像保存到您想要的任何位置。

于 2012-06-24T23:44:06.627 回答