【问题标题】:UIViewPropertyAnimation Objective C questionUIViewPropertyAnimator 目标 C 问题
【发布时间】:2026-02-02 08:20:17
【问题描述】:

我正在关注 WWDC 2017,其中解释了如何使用 UIViewPropertyAnimationViewController 上管理 UIPanGesture

我的项目完全是 Objective C 而不是 Swift

我想澄清一下这个 Swift 功能:

func animateTransitionIfNeeded(forState state: State, duration: TimeInterval) {
let blurAnimator = UIViewPropertyAnimator(duration: duration, dampingRatio: 1) { switch state {
        case .Expanded:
            self.blurEffectView.effect = UIBlurEffect(style: .dark)
        }
        case .Collapsed:
            self.blurEffectView.effect = nil
        }
    }
    blurAnimator.startAnimation()
    runningAnimators.append(blurAnimator)
}

在函数的最后调用它:

runningAnimators.append(blurAnimator)

目标 C 中的runningAnimators 是 NSMutableArray 还是 NSDictionary?

抱歉这个愚蠢的问题。谢谢

【问题讨论】:

  • 在 NSDictionary 中你不能附加任何元素@kAin,所以 runninfAnimators 是 [UIViewPropertyAnimator] 对象的数组。

标签: ios objective-c swift nsmutablearray nsdictionary


【解决方案1】:

这是一个UIViewPropertyAnimator 对象的数组。这可以“翻译”为NSMutableArray。您可以看到.append 的使用,这是一种在 Swift 中向数组添加元素的方法。

查看this link了解更多信息。

【讨论】:

  • 完美...谢谢