Отключение неявной анимации в - [CALayer setNeedsDisplayInRect:]

У меня есть слой с некоторым сложным кодом для рисования в его -drawInContext: метод. Я пытаюсь минимизировать количество рисования, которое мне нужно сделать, поэтому я использую -setNeedsDisplayInRect: для обновления только измененных частей. Это работает великолепно. Однако, когда графическая система обновляет мой слой, он переходит от старого к новому изображению с помощью плавного перехода. Я бы хотел, чтобы он мгновенно переключился.

Я пытался использовать CATransaction, чтобы отключить действия и установить длительность на ноль, и ни одна из них не работает. Вот код, который я использую:

[CATransaction begin];
[CATransaction setDisableActions: YES];
[self setNeedsDisplayInRect: rect];
[CATransaction commit];

Есть ли другой метод для CATransaction, который я должен использовать вместо этого (я также попробовал -setValue: forKey: with kCATransactionDisableActions, тот же результат).

Ответы на вопрос(14)

Ваш ответ на вопрос