0

我正在用这段代码截屏

- (UIImage *)screenshot {
    UIGraphicsBeginImageContext(self.bounds.size);
    [self.layer renderInContext:UIGraphicsGetCurrentContext()];
    UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return image;
}

但生成的图像没有正确显示 alpha 和模糊效果

有任何解决这个问题的方法吗?

4

1 回答 1

2

当您查看“renderInContext”的文档时,您会发现它在动画等方面有一些缺点。试试这个,如果没有必要直接对图层进行截图

- (UIImage *)screenshot {
    UIGraphicsBeginImageContextWithOptions(self.view.frame.size, YES, 0);
    [self.view drawViewHierarchyInRect:self.view.frame afterScreenUpdates:NO];
    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return newImage;
}
于 2013-10-03T08:45:23.090 回答