@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
网友评论