Захват UIView как UIImage - PullRequest
       12

Захват UIView как UIImage

19 голосов
/ 24 августа 2011

Я использовал этот метод для преобразования UIView в UIImage.то есть снимок экрана вида -

@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

Чтобы использовать его, я делаю это -

UIImage *currImage = [self.view imageByRenderingView];

Это дает представление изображения всего UIView,Теперь я хочу 2 изображения, одно из которых имеет верхнюю половину UIView, а другое - нижнюю.Как мне это сделать?

1 Ответ

11 голосов
/ 24 августа 2011

Вы можете разделить ваш UIImage на две части, используя этот код:

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

UIImage *topOfImage = [UIImage imageWithCGImage:topOfImageCG];

CGImageRelease(topOfImageCG);
...