ScrollView生成长图分享

根据视图生成卡片分享的功能非常常见,从视图生成一张图片有很多种做法,我要讲的是用scrollView生成,在这里用scrollView有个妙用,就拿我项目中遇到的来说,生成的长图要求是屏幕宽比例,而项目中视图上显示的是如下图所示的:

Simulator Screen Shot - iPhone 6s Plus - 2018-06-01 at 14.54.01.png

用笨方法也能解决,显示的时候用一个视图,生成的图片用一个看不见的视图布局,然后生成就行了。但这样太过于麻烦,用scrollView,利用它的transform属性就超级简单了。

可以一开始就根据屏幕宽比例布局,布局完成后,设置scrollView的transformMakeScale即可

CGAffineTransformMakeScale(0.73, 0.73) 

这个比例根据自己实际需要设置即可

下面贴出生成长图的方法,我自己也已经写入了一个个人库中,作为scrollView的一个分类方法使用

- (UIImage *)captureScrollView {
    UIImage *image = nil;
    UIGraphicsBeginImageContextWithOptions(self.contentSize, NO, [UIScreen mainScreen].scale);
    CGPoint savedContentOffset = self.contentOffset;
    CGRect savedFrame = self.frame;
    self.contentOffset = CGPointZero;
    self.frame = CGRectMake(0, 0, self.contentSize.width, self.contentSize.height);
    [self.layer renderInContext:UIGraphicsGetCurrentContext()];
    image = UIGraphicsGetImageFromCurrentImageContext();
    self.contentOffset = savedContentOffset;
    self.frame = savedFrame;
    UIGraphicsEndImageContext();
    return image;
}
A4FB31BD25C3D7D9284527327B994C08.png

这个就是生成长图分享后的效果

如果有兴趣,可以去我的GitHub下载源码查看,这是我个人写的一些项目中常见的工具,包括微信图片浏览器效果,各种动画效果等。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 在CMOT中, 这是struct类型,有4个field,struct的用法可以参见matlab文档。 但是,det...
    sunshine芝火阅读 3,704评论 0 0
  • 15年5月19日拿的驾照,后面很少碰车碰过车,所以技术一直不太娴熟。对路况的应急处理更太不上。16年1月15号,我...
    思思培阅读 1,684评论 0 0
  • 伦理、资本主义这样的词汇对我来说是比较陌生的,对它的认知仅仅停留在学校老师泛泛而谈的层面上。但越是粗浅的认识,却反...
    浅浅清如许阅读 1,774评论 0 0
  • 总会有那么一天,或许是我真的放弃了你,请你不要生气,或许是你决定放弃我,那我也真的无能为力了。其实在这段时间里,我...
    枫叶阑珊阅读 1,360评论 0 0

友情链接更多精彩内容