我现在正在尝试渲染 uiview。我可以通过这样的方式正确渲染整个 uiview。
[toBeRecorded.layer renderInContext:UIGraphicsGetCurrentContext()];
但是,我想知道只渲染这样的特定区域(不是通过裁剪..而是只渲染特定区域)。我应该怎么做?
我现在正在尝试渲染 uiview。我可以通过这样的方式正确渲染整个 uiview。
[toBeRecorded.layer renderInContext:UIGraphicsGetCurrentContext()];
但是,我想知道只渲染这样的特定区域(不是通过裁剪..而是只渲染特定区域)。我应该怎么做?
这是答案,我写了这个方法,效果很好:
+ (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;
}