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のビューが含まれています。
コードを確認しましたが、問題を再現できません。これは大きなアニメーションの一部に過ぎないので、問題は一連のイベントのすべてと関係していると思います。可能であれば、より多くのコードを共有してください。おそらく何かが明らかになるでしょう。 – GrimmRanger
ありがとうございました。ジャンプしているサブビューのコンテンツモードがleftに設定されていたため、アニメーションに不愉快なバグが発生しました。私の部分では素人間違い。 – Eytan