NSButtonの底面がスーパービューの面と同じ面になるようにNSButtonを配置していて、その上端がスーパービューと面一になるようにアニメーションしたいと思います。定数を調整するのではなく、NSLayoutConstraintsを追加および削除してアニメーションを作成する
WWDC 2012セッション228:自動レイアウトをマスターするためのベストプラクティスには、レイアウトの変更をアニメーション化する2つの方法(31:16)があり、CoreAnimationテクニックを使用しようとしています。以下の例は、NSButtonを正しく移動しますが、瞬間的にアニメーションなしで実行します。
[button.superview removeConstraint:pointerToBottomSpaceConstraint] ;
NSArray* topSpaceConstraintArray = [NSLayoutConstraint constraintsWithVisualFormat: @"V:|[button]"
options: 0
metrics: nil
views: NSDictionaryOfVariableBindings(button)] ;
[button.superview addConstraints:topSpaceConstraintArray] ;
[NSAnimationContext runAnimationGroup:^(NSAnimationContext* context) {
context.duration = 2 ;
context.allowsImplicitAnimation = YES ;
[button.superview layoutSubtreeIfNeeded] ;
} completionHandler:nil] ;
私はNSLayoutConstraintsを削除し、CoreAnimationが変更をアニメーション化する方法を見つけ出すせ&を追加することはできますか?これはボタンの古い&の新しい位置とNSLayoutConstraintの定数をその分だけ調整することの距離を判断するのが簡単です。