将UIView捕获为UIImage

Sri*_*aju 19 objective-c uiview uiimageview uiimage ios

我一直在用这种方法转换UIViewUIImage.即视图的屏幕快照 -

@interface UIView(Extended) 

- (UIImage *) imageByRenderingView;

@end


@implementation UIView(Extended)


- (UIImage *)imageByRenderingView
{   
    UIGraphicsBeginImageContext(self.bounds.size);
    [self.layer renderInContext:UIGraphicsGetCurrentContext()];
    UIImage *resultingImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return resultingImage;
}

@end
Run Code Online (Sandbox Code Playgroud)

要使用它,我这样做 -

UIImage *currImage = [self.view imageByRenderingView];

这给出了整个图像的表示UIView.现在我想要2个图像,一个是上半部分UIView,另一个是下半部分.我怎么做?

pgb*_*pgb 11

您可以UIImage使用以下代码将您分成两部分:

CGImageRef topOfImageCG =
         CGImageCreateWithImageInRect(currImage.CGImage,
                                      CGRectMake(0,
                                                 0,
                                                 currImage.size.width,
                                                 currImage.size.height / 2.0));

UIImage *topOfImage = [UIImage imageWithCGImage:topOfImageCG];

CGImageRelease(topOfImageCG);
Run Code Online (Sandbox Code Playgroud)