iOS Playground中的动画无法工作

5
这是我的动画方法(PreloaderView.swift)
public func performAction(action: PreloaderAction)
{
    let highOpacity = CABasicAnimation.init(keyPath: "opacity")
    let middleOpacity = CABasicAnimation.init(keyPath: "opacity")
    let lowOpacity = CABasicAnimation.init(keyPath: "opacity")

    if action == .PreloaderActionNone {
        self.thirdShape.removeAllAnimations()
        self.firstShape.opacity = 0.3;
        self.secondShape.opacity = 0.5
        self.thirdShape.opacity = 1.0
    } else if action == .PreloaderActionFailure {
        UIView.animateWithDuration(2, animations: {
            self.thirdShape.strokeColor = UIColor.redColor().CGColor
        }) {(completed : Bool) in
            self.thirdShape.strokeColor = self.ringColor.CGColor
        }

    }

    if action == .PreloaderActionStart {

        highOpacity.fromValue = 0.0
        highOpacity.toValue = 1.0
        highOpacity.duration = animationDuration
        highOpacity.autoreverses = true
        highOpacity.repeatCount = .infinity
        self.secondShape.addAnimation(highOpacity, forKey: "highOpacity")

        middleOpacity.fromValue = 0.0
        middleOpacity.toValue = 1.0
        middleOpacity.duration = animationDuration
        middleOpacity.autoreverses = true
        middleOpacity.repeatCount = .infinity
        middleOpacity.beginTime = CACurrentMediaTime() + 0.33
        self.firstShape.addAnimation(middleOpacity, forKey: "middleOpacity")

        lowOpacity.fromValue = 0.0
        lowOpacity.toValue = 1.0
        lowOpacity.duration = animationDuration
        lowOpacity.autoreverses = true
        lowOpacity.beginTime = CACurrentMediaTime() + 0.66
        lowOpacity.repeatCount = .infinity
        self.thirdShape.addAnimation(lowOpacity, forKey: "lowOpacity")

    }
}

这是我的游乐场文件。

而且在项目导航器中有一个名为playground的选项。

动画在设备上可以正常工作,但当我在游乐场中使用时,动画无法正常工作。

1个回答

8

Xcode 7,Swift 2

添加

import XCPlayground

在Playground的顶部,然后使用。
XCPlaygroundPage.currentPage.liveView = view

在Playground底部,其中view是您要呈现的视图。
您还需要打开“助手编辑器”(在“视图”菜单中)以查看当前的实时视图。
此外,如果您正在使用异步操作,则必须包括。
XCPlaygroundPage.currentPage.needsIndefiniteExecution = true

为了在 Playground 中使用它们。

Xcode 8,Swift 3

import PlaygroundSupport
PlaygroundPage.current.needsIndefiniteExecution = true
PlaygroundPage.current.liveView = view

啊,我刚刚注意到你的截图中实际上已经在使用XCPlayground了。那么问题可能出在内联视图上,应该改用助理编辑器来解决。 - Eric Aya
2
哦,我不知道我需要使用助理编辑器。谢谢。 - David Vardanyan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接