[解決済み】NSLayoutConstraintsはアニメーション可能ですか?重複
2022-04-11 05:34:04
質問
私は、いくつかのビューをアニメーション化し、ランドスケープで巨大なキーボードによってブロックされるようにしようとしています。 単にフレームをアニメーションさせればうまくいきますが、他の人は、これは逆効果で、代わりにNSLayoutConstraintsを更新するべきだと提案しました。 しかし、それらはアニメーション可能ではないようです。 どなたか、うまく動作させた方はいらっしゃいますか?
//heightFromTop is an NSLayoutConstraint referenced from IB
[UIView animateWithDuration:0.25 animations:^{
self.heightFromTop.constant= 550.f;
}];
その結果、問題の高さまで瞬時にジャンプすることができるのです。
解決方法は?
このパターンを忠実に再現してください。
self.heightFromTop.constant = 550.0f;
[myView setNeedsUpdateConstraints];
[UIView animateWithDuration:0.25f animations:^{
[myView layoutIfNeeded];
}];
ここで
myView
はビューで
self.heightFromTop
が追加されました。アニメーションブロックで行ったのは制約の設定だけなので、すぐにレイアウトが発生するわけではありませんから、あなたのビューは "jump"です。このコードでは、レイアウトは、制約を設定した後の次の実行ループで発生します。
heightFromTop.constant
その時には、すでにアニメーションブロックの範囲外になっています。
Swift 2では。
self.heightFromTop.constant = 550
myView.setNeedsUpdateConstraints()
UIView.animateWithDuration(0.25, animations: {
myView.layoutIfNeeded()
})
関連
-
制御が非ボイド関数の終了に達する
-
[解決済み] アトミック属性と非アトミック属性の違いは何ですか?
-
[解決済み] Objective-Cで、ある文字列が他の文字列を含んでいるかどうかを調べるにはどうすればよいですか?
-
[解決済み] Xcode 7のエラーです。"Missing iOS Distribution signing identity for ..." (iOS配布用署名IDがありません)
-
[解決済み] Unwind segueは何に使うのか、どう使うのか?
-
[解決済み] iOSシミュレータでスクリーンショットを撮る
-
[解決済み] iPadマルチタスクのサポートには、これらの方向が必要です。
-
[解決済み] UIViewの角丸とドロップシャドウ?
-
[解決済み] NSNotificationCenterのaddObserver in Swift
-
[解決済み] Swift 3でディスパッチキューを作成する方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
IOS8 Development Guide Error Thread 1: signal SIGABRT
-
[解決済み] iOSのステータスバーの文字色を変更する方法
-
[解決済み] 制約条件の変更をアニメーションで表現するには?
-
[解決済み] App Storeのアプリと連動させる方法
-
[解決済み] Xcode 12、iOS Simulator用にビルドしても、iOS用にビルドされたオブジェクトファイルでは、アーキテクチャ「arm64」用にリンクされます。
-
[解決済み] NSOperationとGrand Central Dispatchの比較
-
[解決済み] アプリのプレビュー用にiOSシミュレータのビデオをキャプチャー
-
[解決済み] iphoneアプリのベータテストはどのように行うのですか?
-
[解決済み] Swift で HTTP リクエストを行うにはどうしたらいいですか?
-
[解決済み] UITableView - トップにスクロールする