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: называется.

Другие вопросы по тегам