Использование Core Animation с объектами, отличными от CALayers - PullRequest
2 голосов
/ 01 марта 2010

Я был почти уверен, что видел обсуждения этого в Сети, но теперь, похоже, ничего не могу найти. Вопрос прост: есть ли способ использовать, например, CABasicAnimation для анимации свойства объекта, который не является «CALayer»? (Скажем, свойство «Volume» в «AVAudioPlayer».)

Если нет, есть ли способ заставить его работать, кроме подклассов «Cayayer»? Может быть, какой-то протокол, чтобы соответствовать?

РЕДАКТИРОВАТЬ: Как насчет этого на iPhone OS?

1 Ответ

7 голосов
/ 01 марта 2010

Вы действительно можете сделать это. Ваш объект должен реализовывать протокол NSAnimatablePropertyContainer и возвращать действительный объект CAAnimation для каждого свойства, которое вы хотите анимировать в методе класса +defaultAnimationForKey:.

Чтобы ответить на ваш обновленный вопрос, нет, в настоящее время вы не можете сделать это на iPhone, так как в iPhone OS нет протокола NSAnimatablePropertyContainer, и вы не можете получить прокси-объект animator от других объектов.

...