Animate UIImageView потерянный центр

У меня проблема с iOS, которую я не могу понять.

У меня есть анимация для UIImageView, которая прекрасно работает. Кроме того, у меня есть setCenter, который помещает UIImageView в правильное положение на экране, что тоже отлично работает.

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

Код анимации:

-(void)startMirror{

[UIView animateWithDuration:1.0
                      delay:0.0
                    options:UIViewAnimationOptionRepeat|UIViewAnimationOptionAutoreverse
                 animations:^{
                     self.transform = CGAffineTransformMakeScale(-1, 1);
                 }
                 completion:^(BOOL completed){}];
  }

Основной код:

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {

 [self.face1 setCenter:CGPointMake(200, 300)];
 [self.face1 startMirror];
}

Я сделал мини-проект со своей проблемой, вы можете скачать здесь we.tl/0gPqkVDCKK Попробуйте комментарий и раскомментируйте строку 46, и вы увидите, в чем моя проблема.

2 ответа

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

Я нахожу решение, заменив:

[self.face1 setCenter:CGPointMake(200, 300)];

с:

self.face1.transform = CGAffineTransformMakeTranslation(-11, 80);

И в анимации

self.transform = CGAffineTransformScale(self.transform, -1, 1);
Другие вопросы по тегам