Как правильно анимировать центральную точку SubView с помощью поворота - PullRequest
1 голос
/ 16 марта 2011

У меня есть два UIViews (A и B), добавленные как subviews к UIViewcontroller Main View (супер-вид).

Я пытаюсь оживить View A (масштабповернуть / переместить центральную точку к точке View B).Если я делаю масштаб / поворот, анимация плавная.Если я просто сделаю центральную точку, анимация будет плавной.Однако, когда я пытаюсь включить изменение центральной точки, вращение и масштабирование View A, тогда анимация центральной точки View A происходит мгновенно и прерывисто, но вращение / масштабирование плавное.

Вот мойанимационный блок:

  [UIView animateWithDuration:2.0 
               animations:^ {

                 self.customView.frame       = CGRectMake(self.containerSubview.frame.origin.x, self.containerSubview.frame.origin.y, 200, 300);
                 self.containerSubview.alpha = 0.2;
                 self.customView.transform   = CGAffineTransformConcat(CGAffineTransformMakeRotation(M_PI / 2), CGAffineTransformMakeScale(1.5, 1.5));
                 self.customView.center      = self.containerSubview.center;
               } 
               completion:^(BOOL finished) {
                 NSLog(@"center point: %@", NSStringFromCGPoint(self.customView.center));
               }
];

1 Ответ

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

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

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

Блог и пример проекта в ближайшее время.

...