iOS-截取TableView產生圖片

來源:互聯網
上載者:User

標籤:div   技術   contents   tar   ati   index   UI   with   from   

先看一下執行個體效果:

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

iOS-截取TableView產生圖片

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.