IOS, как нарисовать UIImage в EAGLContext?
Я делаю "приложение для рисования пальцем". Я использую пример Apple [здесь][1].
Но я хочу добавить опцию отмены. Для этого я сохраняю содержимое EAGLContext в изображение каждый раз, когда приложение обрабатывает окончание сенсорного события.
Проблема возникает, когда я хочу нарисовать последнее изображение, сохраненное в следующем методе:
-(void)undoButtonClicked {
if([savedImagesArray count]>0){
UIImage *image = [savedImages lastObject];
[savedImagesArray removeLastObject];
[image drawInRect:self.frame];
}
}
Но изображение не рисуется, и есть консольный вывод, который говорит:
<Error>: CGContextRestoreGState: invalid context 0x0
Я верю, что что-то не так с контекстом, но я не могу понять это.
Спасибо
1 ответ
В тот момент, когда вы это называете, нет текущего контекста. Новый контекст генерируется до вызова drawRect:
и утилизируется в конце цикла рисования. Ты не можешь позвонить drawInRect:
когда нет контекста.
Представление не должно отслеживать старые изображения. Это функция контроллера. При нажатии кнопки отмены контроллер должен передать правильное изображение для представления, и представление должно затем перерисовать себя в следующий раз drawRect:
называется.