iOS 7 アプリを作成していて、ラベルが付いた四角形があります。ラベルは中央に配置され、ビューと同じサイズになるように作成されます (サイズを大きくするときに簡単にするため)。
目的の効果は、クリックしたときに、ラベルが常に中央に表示された状態で、ビューをフルサイズでアニメーション化することです。
私は現在試しました:
- ラベルの上下左右の制約を 0 に設定する
- ラベルの高さと幅を初期サイズのビューに設定し、ビュー アニメーションとともにフル サイズにアニメーション化する
- ラベルの上と左の制約を 0 に設定し、サイズをフル サイズにアニメーション化する
これらのいずれも、目的の出力を生成しません。ビューがアニメーションを開始する前に、ラベルが最終的なサイズにスナップするように見えるたびに。
これが私のコードです:
_viewHeightConstraint.constant = self.view.frame.size.height;
_viewWidthConstraint.constant = self.view.frame.size.width;
_viewTopConstraint.constant = 0;
_viewLeftConstraint.constant = 0;
_labelWidthConstraint.constant = self.view.frame.size.width;
_labelHeightConstraint.constant = self.view.frame.size.height;
[self.view needsUpdateConstraints];
[UIView animateWithDuration:1.5f
animations:^(void) {
[self.myView layoutIfNeeded]; //perform relayout of view containing label before relayout of entire view
[self.view layoutIfNeeded];
}];
私はまだ自動レイアウトに慣れていないので、必要なものをすべて提供したかどうかはわかりません。ただし、望ましい効果は、中央のラベルが中央に配置されたまま、フル サイズにアニメーション化されるビューです。