iOS:如何拍摄具有圆角的UIView的快照?

时间:2017-09-13 12:25:32

标签: ios uiview

我想将UIView的快照作为PNG图像。在我的情况下,视图有圆角,因此,当我拍摄快照时,它会显示边缘为圆角的黑色。我希望它是透明的。我怎样才能做到这一点?

enter image description here

以下是我用于获取图片的代码。

- (UIImage *)snapshotOfQuoteContainerView {

UIGraphicsBeginImageContextWithOptions(self.outerContainerView.bounds.size, YES, 0.0f);
CGContextRef context = UIGraphicsGetCurrentContext();
[self.outerContainerView.layer renderInContext:context];
UIImage *snapshotImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

return snapshotImage;
}

注意:After changing image size, image's transparent part became black并未解决我的问题。就我而言,它与更改图像大小无关。

1 个答案:

答案 0 :(得分:2)

UIGraphicsBeginImageContextWithOptions的第二个参数是opaque。您提供YES,但需要NO

  

<强>不透明

     

布尔标志,指示位图是否不透明。如果你   知道位图完全不透明,指定YES忽略alpha   通道并优化位图的存储。指定NO意味着   位图必须包含一个alpha通道来处理任何部分   透明像素。

进一步阅读:https://developer.apple.com/documentation/uikit/1623912-uigraphicsbeginimagecontextwitho?language=objc