我正在尝试在iOS上获取UIView屏幕截图。
在我看来,我有两个带动画的UIImageView。
我用它捕获视图的代码是:
UIGraphicsBeginImageContextWithOptions(self.view.bounds.size, NO, 1.0);
[self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
// Read the UIImage object
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
UIImageWriteToSavedPhotosAlbum(image, self,
@selector(image:didFinishSavingWithError:contextInfo:), nil);
结果是带有背景的图像和只有一个UIImageView。两个ImageView都在一直运行。如果我拍了几张照片,那么UIImageView每次都处于相同的位置。
答案 0 :(得分:2)
试试这个:
-(CGImageRef)imageCapture
{
UIGraphicsBeginImageContext(self.view.bounds.size);
[self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
CGRect rect= CGRectMake(0,0 ,width, height);
CGImageRef imageRef = CGImageCreateWithImageInRect([viewImage CGImage], rect);
return imageRef;
}
每当您想要捕捉屏幕时,请使用以下行
UIImage *captureImg=[[UIImage alloc] initWithCGImage:[self imageCapture]];