1

私は2つUIViews(AとB)が(スーパービュー)として追加されsubviewsています。UIViewcontroller Main View

私はアニメーション化しようとしていますView A(スケール/回転/中心点をの中心点に移動しますView B)。スケーリング/回転を行うと、アニメーションはスムーズです。中心点だけを作成すると、アニメーションはスムーズになります。ただし、中心点の変更を含めようとすると、その中心点アニメーションの回転とスケーリングView AView 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));
               }
];
4

1 に答える 1

0

変換に関しては、ドキュメントをもっと注意深く読むべきでした。変換はビューの中心点に依存するためです。uiview レベルで、変換と中央を変更するアニメーションを同時に発生させることはできません。センターはトランスフォームの依存関係であるため、すぐに設定する必要があり、その後で残りのアニメーションを実行できます。

解決策は、ビューのレイヤーでアニメーション化することでした。グループ アニメーションを使用して、中心点、スケーリング、回転をアニメーション化できました。

ブログとサンプル プロジェクトは近日公開予定です。

于 2011-03-17T02:52:34.613 に答える