iOS开发代码截取当前屏幕(是否有状态栏)

@interface UIView (ScreenShot)
/**
 截取当前屏幕

 @return 返回当前屏幕的图片
 */
- (UIImage *)imageScreenShot;
@end

@implementation UIView (ScreenShot)
//截取当前屏幕
- (UIImage *)imageScreenShot {
    
    UIGraphicsBeginImageContext(self.frame.size);
    
//    CGContextRef context = UIGraphicsGetCurrentContext();

//    [self.layer renderInContext:context]; //用这个方法截屏是没有状态栏的
    
    [self drawViewHierarchyInRect:CGRectMake(0, 0, CGRectGetWidth(self.frame), CGRectGetHeight(self.frame)) afterScreenUpdates:YES];//这个方法截屏是有状态栏的.
    
    UIImage *screenImage = UIGraphicsGetImageFromCurrentImageContext();
    
    UIGraphicsEndImageContext();
    
    return screenImage;
    
    ///另外,如果调用该方法的view为普通控制器的view,是不会有导航栏的.
    ///想要有导航栏,调用该方法的view应该为导航控制器的view.或者是当前主窗口:keyWindow.
}
@end
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容