uiview只渲染特定区域xcode(不是通过裁剪)

Kha*_*inn 1 render crop objective-c uiview ios

我现在正在尝试渲染uiview.我可以用这样的东西正确地渲染整个uiview.

    [toBeRecorded.layer renderInContext:UIGraphicsGetCurrentContext()];
Run Code Online (Sandbox Code Playgroud)

但是,我想知道只渲染这样的特定区域(不是通过裁剪..但只渲染特定区域).我应该怎么做?

在此输入图像描述

inc*_*iko 6

这是答案,我写了这个方法,并且完美地工作:

+ (UIImage*) screenShotTheArea:(CGRect)area inView:(UIView*)view{

        if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)])
            UIGraphicsBeginImageContextWithOptions(CGSizeMake(area.size.width, area.size.height), NO, [UIScreen mainScreen].scale);
        else
            UIGraphicsBeginImageContext(view.bounds.size);

        CGContextRef c = UIGraphicsGetCurrentContext();
        CGContextTranslateCTM(c, -area.origin.x, -area.origin.y);
        [view.layer renderInContext:c];
        UIImage* thePrintScreen = UIGraphicsGetImageFromCurrentImageContext();
        UIGraphicsEndImageContext();

        return thePrintScreen;
    }
Run Code Online (Sandbox Code Playgroud)