Проблема с вращающейся тактовой иглой

Ответов: 4


2

В вашем коде используется таймер для запуска CAAnimation каждую секунду. Вы должны использовать свойство repeatCount для CAAnimation (из протокола CAMediaTiming), чтобы включить непрерывную анимацию.

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


0

CABasicAnimation( документация здесь ) является подклассом CAPropertyAnimation( документация здесь )

CAPropertyAnimation имеет кумулятивный и аддитивный


0

Я не уверен, у меня нет опыта работы с CoreAnimation, но я считаю, что вам нужно установить свойство byValue :

Определяет значение, которое использует приемник для выполнения относительной интерполяции.

Поэтому постарайтесь:

spinAnimation.byValue = M_PI/6;

Я не уверен, что вам нужно сделать явное приведение в float, поскольку свойство является идентификатором, я тоже новичок в Objective-C. Поэтому, я думаю, вам нужно будет:

spinAnimation.byValue = (float)(M_PI/6); // not sure if this is needed or correct

Я не уверен, что вам нужны кумулятивные и аддитивные свойства, попробуйте прокомментировать их:

// spinAnimation.cumulative = YES;
// spinAnimation.additive = YES;

И, как сказал Дэвид в качестве комментария к вашему оригинальному сообщению, вы захотите установить cranTestfloat вместо целого числа, иначе значение будет усечено до 3:

float cranTest = 3.1415279f;

0

Попробуйте сделать это вместо этого:

spinAnimation.byValue = [NSNumber withFloat:(M_PI/6)];

Я считаю, что не должно быть никаких проблем. И не забудьте сделать другие изменения, о которых я вам рассказывал, например, изменение cranTest от того, что int является float.

Также, когда вы отвечаете, не добавляйте ответ, вместо этого добавляйте комментарий к ответу. Ответьте, пожалуйста, на мой ответ, а не на другой ответ.

Objective-C, iphone,
Похожие вопросы