iOS系统层面绘制视图内容

正常绘制

  • UIGraphicsBeginImageContext

    UIGraphicsBeginImageContext(self.view.bounds.size);
    [self.view drawViewHierarchyInRect:self.view.bounds afterScreenUpdates:YES];
    UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    

绘制拓展

  • UIGraphicsBeginImageContextWithOptions

    CGFloat scale = [UIScreen mainScreen].scale;
    UIGraphicsBeginImageContextWithOptions(self.view.bounds.size, NO, scale);
    [self.view drawViewHierarchyInRect:self.view.bounds afterScreenUpdates:YES];
    UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    

补充

  • 截取需要的部分视图

    UIImage *clipImage = [UIImage imageWithCGImage:CGImageCreateWithImageInRect(viewImage.CGImage, CGRectMake(x, y, w, h))];
    

你可能感兴趣的:(iOS系统层面绘制视图内容)