iPhone: UIImage, полученный после рендеринга вида, полностью черный - PullRequest
1 голос
/ 25 июля 2011

Я использую этот метод для рендеринга UIView в UIImage:

+ (UIImage *)imageWithView:(UIView *)view {
    UIGraphicsBeginImageContextWithOptions(view.bounds.size, view.opaque, 0.0);
    [view.layer renderInContext:UIGraphicsGetCurrentContext()];

    UIImage *image = UIGraphicsGetImageFromCurrentImageContext();

    UIGraphicsEndImageContext();

    return image;
}

Полученное изображение имеет правильный размер (как показано свойством UIImage size), но его содержимое имеет сплошной черный цвет. Представление, переданное туда, определенно содержит некоторую графику, но оно не отображается. Есть идеи почему?

1 Ответ

1 голос
/ 25 июля 2011

Это код, который я использую для захвата изображений UIView:

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

CGContextRef context = UIGraphicsGetCurrentContext();

[view.layer renderInContext:context];

UIImage *img = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

return img;

Ваш код выглядит хорошо для меня. Вы можете попробовать поменять мой, чтобы посмотреть, поможет ли это, но я бы назвал это отдельной проблемой от кода, который вы опубликовали.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...