私は比較的新しいIOS開発です。 UIViewアニメーションに関するクエリがあります。 私のアプリケーションでは、私は3つのビュー、ヘッダービュー、view2とフッタービューで構成される "View1"と言うビューを持っています。 3つのビューの幅は同じです(view1と同じ)。ヘッダービューとフッタービューの高さは固定されており、View2の高さはView1の高さによって異なります。したがって、View2の高さはView1の高さ(ヘッダービューの高さ+フッタービューの高さ)として計算されます。 3つのサブビューそれぞれの自動サイズ設定はnoneに設定されます。したがって、View1のすべてのサブビューのすべての配置項目は、そのlayoutSubviewsメソッドで行われます。サブビューとのUIViewアニメーションの同期
-------------------------
| Header View |
| |
-------------------------
| |
| |
| View2 |
| |
-------------------------
| Footer View |
| |
-------------------------
View1
を次のようにView1を、現在のレイアウトが見える今、私が何をしたいユーザーはフッターのビューをタップしたときにVIEW2の大きさがゼロになるとフッターのビューは、単にヘッダビューの下に位置しているので、VIEW1がアニメーションで崩壊すべきです。以下のようにアニメーション後VIEW1の現在のレイアウトが結果の上に実現するために
-------------------------
| Header View |
| |
-------------------------
| Footer View |
| |
-------------------------
View1 (After Animation)
になります私はView1を
実行に関するCGFloat headerViewHeight = self.view1.headerView.frame.size.height;
CGFloat footerViewHeight = self.view1.footerView.frame.size.height;
CGFloat newHeight = (headerViewHeight + footerViewHeight);
CGRect frame = self.view1.frame;
frame.size.height = newHeight;
[UIView beginAnimation:nil context:NULL];
[UIView setAnimationDuration:3.0f];
self.view1.frame = frame;
[UIView commitAnimation];
の親ビューにフッタービュー上でタップジェスチャーのハンドラメソッドに次のコードを書きました画面上では、View2の高さは0に設定され、フッタービューはすぐにヘッダービューのすぐ下に配置され、View1の高さはアニメーションでゆっくりとアニメーションとともにnewHeightに減少します。これは望ましい結果ではありません。私が望むのは、View1の高さがアニメーションとともに減少し、View2の高さも同じ量でアニメーションで減少し、フッタービューはアニメーションで同じ量で上方向に移動する必要があります。 。
私は上記の結果をどのように達成することができますか?
なぜあなたのアニメーションの一部としてview2の高さを設定しないのですか? – Kjuly