美文网首页
iOS将当前显示的view转化成image

iOS将当前显示的view转化成image

作者: 举个栗子wow | 来源:发表于2016-04-19 22:21 被阅读1662次

    产品汪们总是变着花样玩,今天提的需求是把两个页面(一个是tableView另一个是H5页面)转化成image分享出去。。。
    tableView姑且不提,获得H5页面的呈现的内容是什么鬼?直接分享这个H5页面的URL不就行了吗?
    但是产品汪们不管这些。。。你做就是了。。。
    之前对view转化成image这方面了解不多,网上搜了一些方案,这些方案的代码我都不贴了,直接甩网址:
    http://blog.sina.com.cn/s/blog_9c3c519b01014g73.html
    http://my.oschina.net/iOSliuhui/blog/509028

    达到的效果对于普通view来说是可行的,因为普通view的size是确定的,视图和数据也是固定的,但对于tableView来说就是个坑了,因为tableView的cell是在重用的,如果参数给的是tableView,那么截出的image在tableView的不可见区域将会是黑色,因为这里没控件,但是其实tableView上的内容非常多非常长,然而你这个时候要按普通的思路去做的话只能截取到可视区域的image。webView的问题同样是这样。
    。。。这个坑我跳了一下午时间,尝试了很多方法,中途甚至想用一个view做的和这个tableView一模一样,然后对这个view操作。后来想到这里的时候其实已经有个非常简单的方法了,只不过那会儿想问题想傻了,又拖了一会儿才想出来一个比较坑但是有效的方法,思路是这样的:

    创建一个一模一样的tableView或者webView,要让它不在可视区域(反正只要让视图能加载数据就可以,看你怎么处理),在适当时候(能获得正常的tableView的contentSize的时候,这一步我是在viewDidAppear里面获取的,前几个willAppaer之类的获取不到)更改备用的view的bounds。没错,就是用获取到的contentSize作为备用的tableView的size。。。这样cell就不重用了。。。scrollView也不用管滑到哪里了。。。现在备用的视图就是一个再普通不过的view。。。

    虽然看起来有点坑。。。但总算是实现了。。。其实我个人是拒绝这样写的。。。太没水平了。。。但是一时又想不出来好的方法。。。有做过这方面的大神清给予指教,不胜感激。。。

    相关文章

      网友评论

          本文标题:iOS将当前显示的view转化成image

          本文链接:https://www.haomeiwen.com/subject/uddzlttx.html