这篇文章主要为大家详细介绍了iOS实现简单长截图,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
本文实例为大家分享了iOS实现简易的长截图的具体代码,供大家参考,具体内容如下
长截图的实现原理:
实际上是将view的内容绘制成图片,再将各个view绘制出来的图片拼接出来。
具体代码:
将view绘制成图片
1.绘制状态栏
2.绘制导航栏(如果有的话)
在某些情况下,如自定义的导航栏,则需要另外自行获取view再来绘制
3.绘制ScrollView
绘制scrollview长图的时候,如果直接绘制的话,那么得到的图片就是scrollview的frame.size大小的图片,而没有滚动到的地方则不会绘制进去,所以要先将scrollview的size变成和contentSize一样
到这里,其实最难的一步已经完成了,但是这个方法也不是完美的。当这个scrollview添加到父视图的时候是添加约束的方式来确定大小和位置的时候,使用这个方法绘制出来的图片大小没有问题,但是内容却可能只有屏幕上显示出来的部分多一点,其他部分是空白。具体原因我也不太清楚,只要在绘制成图片之前将约束移除,绘制之后再添加回来
如果项目中集成了SnapKit的话可以用其给scrollview重新设置约束,绘制图片结束后在还原也可以
4.拼接图片
已经得到了所需要的各个部分的元素,这里按照上下位置将其拼接起来
这里是图片的上下拼接,左右拼接与这个类似,只需要计算好图片的左右位置即可。
效果图:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程学习网。