gpt4 book ai didi

core-animation - 通过添加和删除 NSLayoutConstraint 来制作动画,而不是调整常量

转载 作者:行者123 更新时间:2023-12-04 14:47:24 24 4
gpt4 key购买 nike

我有一个 NSButton,它的底部与其 super View 齐平,我想动画它向上移动,使其顶部与其 super View 齐平。

WWDC 2012 Session 228: Best Practices for Mastering Auto Layout 提到了两种动 Canvas 局更改的方法 (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 的常量。

最佳答案

添加后 button.superview.wantsLayer = YES ,上面的例子动画正确。

关于core-animation - 通过添加和删除 NSLayoutConstraint 来制作动画,而不是调整常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13629780/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com