您的位置:首页 > 移动开发 > IOS开发

截图功能实现

2015-09-09 10:57 447 查看
以下是使用最普遍的方法:

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

直接在图形上下文选择一个区域进行截图,使用也很方便,使用得当能够有意外的效果,比如跳转其他页面后背景是上一个页面的画面。但是这种又一个缺陷,就是截图之后的图片有点模糊,分辨率不高,这是因为它不支持Retina屏,不仅如此,它在iPad4上将截图储存到相册后显示的方向是错误(因为我做的是横屏应用,适配所有iPad和iPhone,截图之后储存,方向改变,iPad4真是iPad届的一朵奇葩,横屏时获取屏宽和屏高时也是相反的)。

为了提高用户体验,改换支持Retina屏幕的截图方法:

- (UIImage *)screenShot:(CGSize)size {
UIGraphicsBeginImageContextWithOptions(size, NO, 0.0);
[self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return image;
}

截取的图片质量更高,且不会出现方向错误的情况。

还有其他的方法暂不介绍。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ios