Невозможно нарисовать изображение.

У меня есть UIImageView в пределах UIViewController и хотите добавить простое изображение в существующее изображение.

Метод viewDidLoad выглядит так:

    UIImage *test;
    test = [UIImage imageNamed:@"position-dot.png"];

    [test drawAtPoint:CGPointMake(100,100) ];

Часть полученного сообщения об ошибке выглядит следующим образом:

CGContextSaveGState: invalid context 0x0. This is a serious error. This application, or a library it uses, is using an invalid context  and is thereby contributing to an overall degradation of system stability and reliability. This notice is a courtesy: please fix this problem. It will become a fatal error in an upcoming update.

CGContextSetBlendMode: invalid context 0x0. This is a serious error,

Я проверил, чтобы сбросить мой iOS Simulator (решение в других темах об этом), но это не решило проблему.

1 ответ

Решение

В то время как подход в моем вышеупомянутом комментарии замалчивает предупреждение, я обнаружил, что изображение не отображалось, как я ожидал. Я обнаружил, что самый простой способ заставить drawAtPoint работать - это создать подкласс UIView и поместить именно тот код, который у вас есть, в реализацию drawRect: вот так.

- (void)drawRect:(CGRect)rect
{
    [super drawRect:rect];
    UIImage *test;
    test = [UIImage imageNamed:@"position-dot"];
    [test drawAtPoint:CGPointMake(100.0, 100.0)];
}

Затем в вашем контроллере:

MyViewSubclass *view = [[MyViewSubclass alloc] initWithFrame:self.view.frame];
[self.view addSubview:view];
Другие вопросы по тегам