2011-03-16 54 views
1

我有兩個UIViews(A和B)作爲subviews添加到UIViewcontrollerMain 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)); 
       } 
]; 

回答

0

我應該更仔細地閱讀文檔,當談到轉變。由於變換取決於視圖的中心點。在uiview級別,我不能同時發生修改變形和中心的動畫。由於中心是變換的依賴關係,所以必須立即設置中心,然後才能進行其餘的動畫。

解決方案是在視圖圖層上進行動畫處理。使用組動畫我可以生成動畫:中心點,縮放和旋轉。

博客和示例項目即將推出。

+0

我一直在努力解決完全相同的問題,我很想看到您的解決方案。您是否在該博客和示例中取得了進展?謝謝, – 2011-03-25 14:46:38

+0

@wanderweird對於LATE回覆抱歉。沒有意識到有人評論過。是的......博客和示例位於:http://blog.corywiles.com/using-caanimationgroup-for-view-animations – 2011-07-08 17:44:32