zoukankan      html  css  js  c++  java
  • iOS-截取TableView生成图片

    先看一下实例效果:

    如果所示,这是一个在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

  • 相关阅读:
    dubbo
    Executer invokeAll
    java并发编程实战 java并发编程的艺术 阅读随笔
    小程序如何获取指定类名高度
    一些好用的Swift三方框架
    微信小程序checkbox多选传多个参数的操作
    关于xcode出现An unknown error occurred. See the install log for more details安装失败解决办法
    iOS 针对于13.0和暗黑模式出现的适配问题
    iOS UITextField如何禁止输入表情及特殊字符
    判断iPhoneX适配问题
  • 原文地址:https://www.cnblogs.com/chenjiangxiaoyu/p/7413189.html
Copyright © 2011-2022 走看看