2011-12-12 7 views
5

UIViewアニメーションを使用して、複数のサブビューを含むビューのサイズを変更して翻訳しています。親ビューのアニメーションは完全に発生します。ただし、サブビューは奇妙な動作を示します。アニメーションが開始されると、サブビューはすぐにサイズ変更され、最終的な位置に移動されます。UIViewのサイズ変更と翻訳アニメーションでサブビューが正しくアニメーション化されない

たとえば、アニメーションの長さと遅延が5秒の場合、アニメーションが呼び出されるとすぐに、サブビューがアニメーションの終了値に移動します。 5秒後に、スーパービューのサイズが変更され、希望に変換されます。

アニメーションのための私のコードは次のとおりです。

[UIView animateWithDuration:0.5 animations:^{ 
    if (UIDeviceOrientationIsLandscape(self.interfaceOrientation)) { 
     self.leftPaneView.frame = leftPaneLandscapeFrame; 
     self.rightPaneContainerView.frame = rightPaneLandscapeFrame; 
    } 
    if (UIDeviceOrientationIsPortrait(self.interfaceOrientation)) { 
     CGFloat offset = 300; 
     self.leftPaneView.frame = CGRectOffset(leftPanePortraitFrame, -offset, 0); 
     self.rightPaneContainerView.frame = rightPanePortraitFrame; 
    } 
}]; 

任意のアイデア?

注:rightPaneContainerViewには、このアニメーションを呼び出すView Controllerの子であるUIViewControllerのビューが含まれています。

+1

コードを確認しましたが、問題を再現できません。これは大きなアニメーションの一部に過ぎないので、問題は一連のイベントのすべてと関係していると思います。可能であれば、より多くのコードを共有してください。おそらく何かが明らかになるでしょう。 – GrimmRanger

+0

ありがとうございました。ジャンプしているサブビューのコンテンツモードがleftに設定されていたため、アニメーションに不愉快なバグが発生しました。私の部分では素人間違い。 – Eytan

答えて

7

私は問題を解決することができました。一部のビューのコンテンツモードはLeftに設定されていました。アニメーションが開始されると、ビューは左にジャンプし、アニメーションの目的のアニメーション値にアニメーションされます。

素人ミス。見てくれた皆さん、ありがとうございました。

+0

良いキャッチ!あなたがそれを解決してうれしく思います、あなたのソリューションを投稿してくれてありがとう! – GrimmRanger

+0

同じ問題があった、ありがとう。 – Anastasia

+0

あなたはどのcontentModeを選択しましたか? – Colas

関連する問題