最近做的项目需要“分享图片”的功能,截屏不单单指当前屏幕可视区域,而是指整个 scrollView 区域,因为截屏的范围可自定义,所以只需要将 scrollview 的范围设置就可以,以下是相关代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
///获取截屏图片
- (UIImage *)captureScrollView:(UIScrollView *)scrollView
{
UIImage* image = nil;
UIGraphicsBeginImageContextWithOptions(scrollView.contentSize, NO, 0.0); // 原图清晰度
{
CGPoint savedContentOffset = scrollView.contentOffset;
CGRect savedFrame = scrollView.frame;
scrollView.contentOffset = CGPointZero;
scrollView.frame = CGRectMake(0, 0, scrollView.contentSize.width, scrollView.contentSize.height);
[scrollView.layer renderInContext: UIGraphicsGetCurrentContext()];
image = UIGraphicsGetImageFromCurrentImageContext();
scrollView.contentOffset = savedContentOffset;
scrollView.frame = savedFrame;
}
UIGraphicsEndImageContext();
if (image != nil) {
return image;
}
return nil;
}
|
以上就是相关截整个 scrollview 屏幕方法。
注:可以通过修改 UIGraphicsBeginImageContextWithOptions 的参数值改变截图的大小。
如果想要截图清晰,可以用
1
|
UIKIT_EXTERN void UIGraphicsBeginImageContextWithOptions(CGSize size, BOOL opaque, CGFloat scale) NS_AVAILABLE_IOS(4_0);
|