iPhone Quartz CGContextRotateCTM Анимация - PullRequest
0 голосов
/ 10 марта 2011

Я рисую круговую диаграмму и при нажатии поворачиваю ее к следующему пирогу с помощью

CGContextRotateCTM(context, degreesToRadians(mAngle)).

Есть ли способ оживить этот переход?Не могли бы вы опубликовать пример?

1 Ответ

0 голосов
/ 11 марта 2011

Я думаю, что если вы действительно хотите повернуть диаграмму, просто изменив код чертежа, вам нужно создать таймер и изменить угол поворота в его методе, а также сделать перерисовку вида там.

Вместо применения поворота в коде чертежа я бы, если это возможно, поворачивал представление с самим графиком - либо с анимацией UIView, либо с анимацией CALayer - они довольно просты и обеспечивают гораздо большую гибкость. например

[UIView animateWithDuration:1.0f 
                 animations:^{
                     view.transform = CGAffineTransformMakeRotation(mAngle);
                 }];

Повернет ваш взгляд на mAngle с анимацией в течение 1 секунды (метод доступен, начиная с iOS4). Также, если вы хотите повернуть изображение на 360 градусов или более, вам нужно использовать анимацию CALayer (подробнее см. в этом вопросе ).

Также использование стандартных анимаций, скорее всего, не приведет к перерисовке вашего вида, поэтому он будет более эффективным.

...