最近做项目遇到要求截取图片长度超出手机屏幕,即可滑动的长图截屏,这里简单说一下解决思路,下面附带Demo下载地址。
,当我们要截全屏时,将滑动视图的frame以及偏移量记录下来,然后将滑动视图偏移量设为0,frame改为滑动视图的
contentSize,然后生成图片进行保存,代码实现如下:
// 下面方法,第一个参数表示区域大小。第二个参数表示是否是非透明的。如果需要显示半透明效果,需要传NO,否则传YES。第三个参数就是屏幕密度了,调整清晰度。 UIGraphicsBeginImageContextWithOptions(scroll.contentSize, YES, [UIScreen mainScreen].scale); CGPoint savedContentOffset = scroll.contentOffset; CGRect savedFrame = scroll.frame; scroll.contentOffset = CGPointZero; scroll.frame = CGRectMake(0, 0, scroll.contentSize.width, scroll.contentSize.height); [scroll.layer renderInContext: UIGraphicsGetCurrentContext()]; image = UIGraphicsGetImageFromCurrentImageContext(); scroll.contentOffset = savedContentOffset; scroll.frame = savedFrame; UIGraphicsEndImageContext();
Demo下载地址:https://github.com/zk1947/CaptureScreen
时间: 2024-10-29 04:32:16