测试设备为iPhoneX,目标页面的frame为CGRectMake(0, 0, 375, 560)
目的是为了生成此View的图片,用于分享。
首先使用此方法生成UIImage,
UIImage *tempImage = [shareView SaveViewImage];
-(UIImage *)SaveViewImage
{
CGSize imageSize = self.bounds.size;
UIGraphicsBeginImageContextWithOptions(imageSize, YES, 0);
[self.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *SaveImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return SaveImage;
}
生成页面结果如下:

图片分辨率为1125 × 1680
最终图片分辨率为
1125 × 1680;但是想要输出的结果是
750 ×1120,修改生成上下文的方法为
UIGraphicsBeginImageContextWithOptions(CGSizeMake(750, 1120), YES, 0);,重新编译,发现出现了混乱,而且分辨率为2250 × 3360:
图片出现混乱
修改上下文生成方法为
UIGraphicsBeginImageContext(CGSizeMake(750, 1120));发现页面被缩放了:
页面被缩放
感觉是
view的frame的单位从pt变成了px。所以修改目标
View的frame为CGRectMake(0, 0, 750, 1120),并且把view中的各控件的frame同时调整为两倍,最终生成了符合要求的分辨率为750 ×1120的类似图一效果的目标图片。