オートレイアウトとFacebook Pop
-
26-12-2019 - |
質問
自動レイアウトで
解決
この場合は、POPで次のことができるようにすることができます。ポップスプレンションは制約自体に追加されていることが
NSLayoutConstraint *constraint = // this is an NSLayoutConstraint that is applied to some view
POPSpringAnimation *layoutAnimation = [POPSpringAnimation animationWithPropertyNamed:kPOPLayoutConstraintConstant];
layoutAnimation.springSpeed = 20.0f;
layoutAnimation.springBounciness = 15.0f;
layoutAnimation.toValue = @(value to go too);
[constraint pop_addAnimation:layoutAnimation forKey:@"detailsContainerWidthAnimate"];
.
使用する主要なプロパティは、上記のようにkpoplayoutConstraintConstantです。そのため、自動レイアウトの制約でそれを実行したい場合は、この制約プロパティを使用できます。
スケールやその他のプロパティを使用すると、AutoLayoutでも機能しますので、POPをAutoLayoutで作業することに問題がありません。
他のヒント
POPアニメーションをautolayout
で実装するための適切な方法は、translatesAutoresizingMaskIntoConstraints
SWIFT-3では、コードはこんな感じです。self.menufooterConstantがストーリーボード上のUI制約の参照であると仮定します。
if let anim = POPSpringAnimation(propertyNamed: kPOPLayoutConstraintConstant) {
anim.toValue = 142
anim.springSpeed = 20
anim.springBounciness = 15
self.menuFooterConstant.pop_add(anim, forKey: "animationForTrendfooter")
}
. 制約を直接アニメートすることができます。POPを使用すると、 kpoplayoutConstraintConstant プロパティ名を使用するだけです。アニメーションを設定して、制約自体に追加します。
制約自体にアニメーションを追加したくない場合は、次の点に注意してください。
あなたのアニメーションの一部としてビュー制約を更新することを忘れないでください
制約ベースのレイアウト規則を使用してビューの位置を管理する場合は、そのアニメーションを設定する部分としてアニメーションを妨げる可能性のある制約を削除する必要があります。制約は、ビューの位置やサイズに加える変更に影響します。それらはまた、ビューとその子ビューの関係に影響を与えます。これらの項目のいずれかに変更をアニメート化している場合は、制約を削除し、変更を加えてから、必要な新しい制約が必要なものであれば適用できます。
*からのDOCS