Невозможно нарисовать изображение.
У меня есть 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];