UIView animateWithDuration не работает - PullRequest
       26

UIView animateWithDuration не работает

1 голос
/ 05 декабря 2011

У меня есть объект UIView. Он вращается, когда я изменяю угол глобальной переменной. У меня есть функция, которая удаляет этот UIView из его суперпредставления и перерисовывает его. Я добавил кнопку. Когда пользователь нажимает эту кнопку, мне нужно запустить анимацию. На каждом этапе мне нужно изменить угол и вызвать мою функцию перерисовки. Итак, эффект, который я ожидаю увидеть, заключается в том, что мой взгляд вращается. вот код:

-(IBAction)animate:(id)sender
{
    NSLog(@"animate: called");
    [UIView animateWithDuration:0.7
                          delay:0.0
                        options: UIViewAnimationCurveEaseOut
                     animations:^{
                     angle=angle+5.0;
                     if (angle>360)
                     {
                         angle=angle-360;
                     }
                     else if(angle<0)
                     {
                         angle=angle+360;
                     };

                     NSLog(@"inner angle: %g", angle);
                     [self transform]; //this is my redraw function. it redraws my view depending on global variable value angle.
                 } 
                 completion:NULL];
NSLog(@"finalAngle: %g", angle);
}

Почему эта анимация не работает нормально?

Ответы [ 2 ]

1 голос
/ 05 декабря 2011

Анимация UIView поддерживает только следующие свойства

@property frame
@property bounds
@property center
@property transform
@property alpha
@property backgroundColor
@property contentStretch

Вы должны выполнить анимацию с базовым каркасом анимации

0 голосов
/ 20 августа 2012

Вы можете анимировать свойство transform.Однако выполнить ротацию со свойством transform сложнее, чем с помощью CA Framework.Я нашел этот пост полезным: UIView Бесконечная анимация вращения на 360 градусов?

...