先看一下实例效果:

如果所示,这是一个在APP中截图,并调起微信客户端,发送给好友的例子,图片就是一个tableView的截图。

先实现一个小例子,如果tableVIew里面的内容,没有超过当前屏幕显示的区域,我们可以直接根据tableView的frame,生成一张图片

 //  根据view生成图片
UIGraphicsBeginImageContext(shareView.bounds.size);
[shareView.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

但是,如果遇到了内容过多的情况,此时tableView的行数会很多,如何截取tableView的contentSize里面的内容呢,其实也就是,获取每一个cell,一条一条的绘制出来就行了。此时,你需要先获取到cell的行数,设置tableView的rowHeight属性,这个就不用多说了。以下是主要代码:

//  截取tableView的图
- (UIImage*)screenShotForIndexPaths:(NSArray*)indexPaths{ CGPoint originalOffset = self.tableView.contentOffset;

  //  
UIGraphicsBeginImageContextWithOptions(CGSizeMake(self.tableView.size.width, self.tableView.rowHeight * [indexPaths count]), NO, 0.0); CGContextRef ctx = UIGraphicsGetCurrentContext(); //---一個一個把cell render到CGContext上
UUMainVINCarMessageViewCell *cell = nil;
for(NSIndexPath *indexPath in indexPaths)
{
//讓該cell被正確的產生在tableView上, 之後才能在CGContext上正確的render出來
[self.tableView scrollToRowAtIndexPath:indexPath atScrollPosition:UITableViewScrollPositionNone animated:NO]; cell = (UUMainVINCarMessageViewCell*)[self.tableView cellForRowAtIndexPath:indexPath];
[cell.layer renderInContext:ctx]; //--欲在context上render的origin
CGContextTranslateCTM(ctx, 0, self.tableView.rowHeight);
//--
}
//--- UIImage *image = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); self.tableView.contentOffset = originalOffset; return image;
}

就这么简单的实现了,此外记录一个博客

http://www.cnblogs.com/kenshincui/p/3959951.html#!comments

最新文章

  1. AMD and CMD are dead之KMD.js之懒
  2. 这可能是由于服务终结点绑定未使用 HTTP 协议造成的 .这还可能是由于服务器中止了 HTTP 请求上下文
  3. sandy bridge
  4. linux ssh config
  5. fopen()、 file_get_contents() 通过url获取链接内容
  6. React Native 开发之 (04) 例子讲解
  7. post提交表单
  8. eclipse闪退
  9. SenchaTouch介绍和Sencha Architect介绍以及安装
  10. 通过代码设置textview颜色
  11. 1.css的语法标准
  12. C++对MS SQL Server的操作
  13. WordPress更新服务加快收录
  14. python学习之列表
  15. 试用ubuntu-12.04.3-desktop-amd64
  16. 【分割平面,分割空间类题】【HDU1290 HDU2050】
  17. c语言 数组最小数
  18. VC版八皇后
  19. Mongodb 3 查询优化(语句优化、建索引)
  20. (84)Wangdao.com第十八天_JavaScript Promise 对象

热门文章

  1. PHP实现跨域解决方法
  2. iOS多线程开发之NSThread
  3. Argparse4j
  4. kali ssh服务连接问题,无法远程管理
  5. Ambari安装之部署本地库(镜像服务器)(二)
  6. Java - static的注意点
  7. Java调度实现
  8. EL函数和自定义EL函数
  9. Windows查看端口使用状况
  10. 【PHP】基础学习