0

アプリを iOS7/8 にアップデートし、自動レイアウト機能を適用しています。私の中には、がその を更新するときにその位置を変更する必要があるものがUIViewControllerいくつかあります。UIViewsUIScrollViewcontentOffset

フレームを更新するとUIView's(古い方法で)、コントローラーの自動レイアウトの制約が原因でグリッチとエラーが発生します (プログラムで制約を設定するために VFL を使用していますが、ストーリーボードはありません)。

UIViews問題は、Autolayout を実装するコントローラーで移動する正しい/最良の方法はどれですか? 多分制約を更新しますか?Core Animation を使用して何かをUIView動かす必要がありますか?

前もって感謝します!

4

2 に答える 2

3

ストーリーボードに制約を設定している場合は、更新する必要がある制約のアウトレットを設定できます (ビューの場合と同様)。これを行ったら、必要に応じて制約定数プロパティを更新できます。

[self layoutIfNeeded];
topConstraint.constant += 200;
[UIView animateWithDuration:0.3 animations:^{
        [self layoutIfNeeded];
    }]; 

上記のコードでは、ビューの topConstraint を更新し、変更をアニメーション化しています。[self layoutIfNeeded];制約を変更する前に 1 回呼び出し、アニメーション ブロックでもう一度呼び出す必要があります。

于 2015-04-06T09:06:46.857 に答える