1

我有两个UIViews(A和B)被添加subviews到一个UIViewcontroller Main View(超级视图)。

我正在尝试制作动画View A(缩放/旋转/移动中心点到View B)。如果我做缩放/旋转动画是平滑的。如果我只是做中心点,动画很流畅。但是,当我尝试包括更改中心点时,View AthenView 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 回答