Переместить и повернуть UIImageView

У меня есть UIImageView с зацикленной анимацией вращения, мне нужно переместить UIImageView на x и y на экране.

Код анимации вращения:

-(void)rotate{

if (leftRotate){
    leftRotate = NO;
}else{
    leftRotate = YES;
}

CGRect initFrame = self.frame;

[UIView animateWithDuration:0.5
                      delay:0.0
                    options:UIViewAnimationOptionRepeat|UIViewAnimationOptionAutoreverse
                 animations:^{

                     if (leftRotate){
                         self.transform = CGAffineTransformRotate(self.transform, -1 * (M_PI/8));
                     }else{
                         self.transform = CGAffineTransformRotate(self.transform, M_PI / 8);
                     }

                 }
                 completion:^(BOOL completed) {
                     if (completed){
                         if (!stopRotate){
                             [self rotate];
                         }
                     }
                 }];
}

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


person Tony    schedule 07.03.2013    source источник
comment
Вы также можете использовать CGAffineTransformConcat, чтобы объединить CGAffineTransformRotate и CGAffineTransformTranslate в одно преобразование и применить его.   -  person Kaan Dedeoglu    schedule 07.03.2013
comment
Я должен объединить их в одной анимации? , мне нужно переместить UIImageView за пределы анимации.   -  person Tony    schedule 07.03.2013
comment
Я могу переместить UIImageView, используя настройки self.face1.center x и y, теперь проблема в том, что если я попытаюсь установить центр внутри -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event, по какой-то причине , центр не меняется.   -  person Tony    schedule 07.03.2013
comment
что вызывает ваши проблемы, так это то, что вы используете UIViewAnimationOptionRepeat - когда у вас есть это, код в блоке анимаций: ^{.....} не оценивается каждый раз (что вы можете проверить, если вы добавите туда оператор NSLog , он печатается только один раз). Вы уже вспоминаете метод поворота в конце анимации, так зачем включать параметр UIViewAnimationOptionRepeat?   -  person Kaan Dedeoglu    schedule 07.03.2013


Ответы (1)


Я нашел способ, я должен установить центр вне анимации:

CGPoint facePosition = CGPointMake(self.face1.center.x+1,
                                 self.face1.center.y);

self.face1.center = facePosition;
person Tony    schedule 07.03.2013