Могу ли я использовать Core Animation без CALayers? - PullRequest
1 голос
/ 14 апреля 2010

Можно ли использовать Core Animation для изменения чего-то другого, кроме свойств CALayers? Я хотел бы использовать простую анимацию свойств с упрощением для изменения значения в моем классе модели. Примерно так:

CABasicAnimation* anim = [CABasicAnimation animation];
anim.keyPath = @"someProperty";
anim.fromValue = [NSNumber numberWithFloat: 0.0];
anim.toValue = [NSNumber numberWithFloat: 1.5];
anim.duration = 1.0;
anim.timingFunction = [CAMediaTimingFunction 
    functionWithName:kCAMediaTimingFunctionEaseInEaseOut];

А затем вызывать что-то вроде [anim update], пока анимация не закончится.

Ответы [ 2 ]

1 голос
/ 28 июня 2010

Можно использовать CABasicAnimation, которая работает на CALayer, без использования самого CALayer; но запросить его - (id) presentationModel. Можно даже добавить свои собственные ключи в CALayer, чтобы анимировать таким образом

1 голос
/ 21 апреля 2010

Классы слоев (CALayer и его подклассы) являются основой Core Animation. Эти классы предоставляют контент для отображения. Так что нет, вы не можете использовать Core Animation без использования CALayers.

Я бы предложил прочитать описание Apple Core Animation . Исходя из того, что вы описываете, вы хотели бы использовать класс Core Animation CABasicAnimation, чтобы сообщить классу модели, каким должно быть определенное значение в течение продолжительности анимации. Классы Core Animation не предназначены для такого использования или для чего-либо другого, кроме платформы Core Animation.

Что вы действительно ищете, так это класс / библиотека, которые могут предоставить вам временную интерполяцию между значениями с чисто математической точки зрения, а не анимацию. Возможно, есть какой-то открытый исходный код, который может сделать это для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...