iOS截屏( UIView,UITableView,UICollectionView,UIWebView)

我的博客原文地址

主要代码

UIView+Cutter.m

/**
 *  根据视图尺寸获取视图截屏
 *
 *  @return UIImage 截取的图片
 */
- (UIImage*)viewCutter
{
    UIGraphicsBeginImageContextWithOptions(self.bounds.size,NO,[[UIScreen mainScreen] scale]);
    
    // 方法一 有时导航条无法正常获取
    // [self.layer renderInContext:UIGraphicsGetCurrentContext()];
    // 方法二 iOS7.0 后推荐使用
     [self drawViewHierarchyInRect:self.bounds afterScreenUpdates:YES];
    
    UIImage*img = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    
    return img;
}

UIScrollView+Cutter.m

/**
 *  根据视图尺寸获取视图截屏(一屏无法显示完整),适用于UIScrollView UITableviewView UICollectionView UIWebView
 *
 *  @return UIImage 截取的图片
 */
- (UIImage *)scrollViewCutter
{
    //保存
    CGPoint savedContentOffset = self.contentOffset;
    CGRect savedFrame = self.frame;
    
    self.contentOffset = CGPointZero;
    self.frame = CGRectMake(0, 0, self.contentSize.width, self.contentSize.height);
    
    UIImage *image = [self viewCutter];
    
    //还原数据
    self.contentOffset = savedContentOffset;
    self.frame = savedFrame;
    
    return image;
    
    
}

代码示例

/*

// 使用说明

// 没有导航和tabbar UIImage *image = [self.view viewCutter];

// 有导航和tabbar UIImage *image = [self.navigationController.view viewCutter];

// UICollectionView UIImage *image = [self.collectionView scrollViewCutter];

// UITableView UIImage *image = [self.tableView scrollViewCutter];

// UIWebView UIImage *image = [self.webView scrollViewCutter];

*/

图片示例:

Cutter-1Cutter-2Cutter-3

完整代码下载

参考

https://developer.apple.com/library/ios/qa/qa1817/_index.html#//apple_ref/doc/uid/DTS40014134

转载于:https://my.oschina.net/zigbee/blog/883743

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值