私はautolayoutという制約を使用することはありませんでした。私は私が取り組んでいる小さな新しいアプリケーションがあり、NIBの意見は自動レイアウトにデフォルト設定されていることに気づいた。だから、私はでと仕事をして、Appleがどこでこれを使っているのか理解しようとしました。iOS:新しい自動レイアウト制約(高さ)にアニメーションを適用する方法
初挑戦:
私はMKMapViewのサイズを変更する必要があると私は新しい位置にそれをアニメーション化したいと思います。私はこれに私が慣れてる道行う場合:
[UIView animateWithDuration:1.2f
animations:^{
CGRect theFrame = worldView.frame;
CGRect newFrame = CGRectMake(theFrame.origin.x, theFrame.origin.y, theFrame.size.width, theFrame.size.height - 170);
worldView.frame = newFrame;
}];
を...そしてMKMapViewは元の高さに「スナップ」兄弟ビューが更新されるたび(私の場合はUISegmentedControlのタイトルが更新されています[myUISegmentedControl setTitle:newTitle forSegmentAtIndex:0]
)。 V:[MKMapView]-(16)-[UISegmentedControl]
だから、私はそれがカバーだったことUISegmentedControlの先頭に相対的であることに、親ビューの絶頂に等しいからMKMapViewの制約を変更されてやりたいをどう思う
私が望むのは、MKMapViewの高さを短くして、マップビューの下にあるいくつかのコントロールが表示されるようにすることです。これを行うには固定フルサイズビューからUISegmentedControlの最上部に制約がある制約に制約を変更する必要があります。ビューを新しいサイズに縮小してアニメーション化したいと思います。
これについてはどうすればよいですか?
編集 - このアニメーションはないあるビューの下部には、瞬時に170を上に移動んがをアニメーション:
[UIView animateWithDuration:1.2f
animations:^{
self.nibMapViewConstraint.constant = -170;
}];
とnibMapViewConstraint
は、下の垂直方向のスペースの制約にIBにまで配線されています。あなたの制約を更新した後
でcontainerViewの高さの制約を更新するにはcontainerView
上の高さの制約を追加するには
。 。]ブロックを使用して高さの変化をアニメートします。その制約のためのIBOutletを作成し、それをxibに組み込む必要があります。そうでなければ、コード内で作成した場合(またはすべての制約をループして調べる場合)、その参照を保持しておく必要があります。 relatedByの変更をアニメーション化する方法はわかりませんが、定数の変更のみを行い、他の値の制約は変更しないでください(他の値については、新しい制約を作成してください)。 – yuf
Hmm。私はすることができると思ったが、私はアニメーション化していない。それは正常に変更され、アニメーションブロック内にありますが、アニメーション化されていません。 – Meltemi
私の答えはここにあります: –
Meltemi