iOS开发-绘制自己尝试等装一下

ScrollView生成长图分享

2018-06-01  本文已影响131人  皮乐皮儿

根据视图生成卡片分享的功能非常常见,从视图生成一张图片有很多种做法,我要讲的是用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下载源码查看,这是我个人写的一些项目中常见的工具,包括微信图片浏览器效果,各种动画效果等。

上一篇下一篇

猜你喜欢

热点阅读