gpt4 book ai didi

ios - CALayer 旋转动画不适用于呈现的 ViewController

转载 作者:行者123 更新时间:2023-11-28 17:48:52 25 4
gpt4 key购买 nike

我有两个 View Controller (即 firstVC 和 secondVC)。我在 firstVC 上呈现 secondVC 并尝试实现旋转动画,但它不起作用,我尝试在主线程上运行动画有一些延迟,但它给出了奇怪的行为。以下是我用来旋转 View 的代码。

extension UIView {

private static let kRotationAnimationKey = "rotationanimationkey"

func rotate(duration: Double = 1, delay: Int = 0) {
if layer.animation(forKey: UIView.kRotationAnimationKey) == nil {
let rotationAnimation = CABasicAnimation(keyPath: "transform.rotation")

rotationAnimation.fromValue = 0.0
rotationAnimation.toValue = Float.pi * 2.0
rotationAnimation.duration = duration
rotationAnimation.repeatCount = Float.infinity

DispatchQueue.main.asyncAfter(deadline: .now() + .seconds(delay)) {
self.layer.add(rotationAnimation, forKey: UIView.kRotationAnimationKey)
}
}
}

func stopRotating() {
if layer.animation(forKey: UIView.kRotationAnimationKey) != nil {
layer.removeAnimation(forKey: UIView.kRotationAnimationKey)
}
}}

注意:通过按下“secondVC”动画可以正常工作。但我想介绍“secondVC”。

我不明白在呈现 View Controller 和旋转动画期间发生了什么。

如果您找到任何解决方案,请告诉我。

最佳答案

要使用自定义演示转换,您必须确认 UIViewControllerTransitioningDelegateUIKit 总是调用 animationController(forPresented:presenting:source:) 来查看是否返回了 UIViewControllerAnimatedTransitioning。如果返回 nil,则使用默认动画。

关于ios - CALayer 旋转动画不适用于呈现的 ViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51436368/

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