如何在没有SKShapeNode的情况下实现循环加载器

时间:2015-05-14 21:13:49

标签: swift sprite-kit skshapenode

我想创建一个简单的圆形装载机动画圆圈,并在其周围边框消失

我找到了很棒的框架,但是他们使用SKShapeNode和SKShapeNode性能对于实际部署的应用来说非常糟糕

ProgressNode: Very cool framework

1 个答案:

答案 0 :(得分:0)

您可以在UIImageView中使用UIView,并使用"加载圈"作为图像,然后旋转它。这是一个示例类:

import UIKit

class CircularLoadingView: UIView {

    @IBOutlet weak var rotatingImage: UIImageView!
    let duration: Double = 1

    func startAnimation() {
        let animation = CABasicAnimation(keyPath: "transform.rotation.z")
        animation.toValue = NSNumber(floatLiteral:  M_PI * 2.0 * duration)
        animation.duration = duration
        animation.isCumulative = true
        animation.repeatCount = Float(CGFloat.greatestFiniteMagnitude)
        rotatingImage.layer.add(animation, forKey: "animationKey")

        UIView.animate(withDuration: duration, animations: {
            self.alpha = 1
        })
    }
}

只需添加一个UIView并将CircularLoadingView设置为自定义类。添加UIImageView,设置要旋转的图像,设置出口和约束,看看会发生什么。

但是通过这种尝试,您需要一个您必须创建或查找的图像。

如果这对您没有帮助,也许这个旧的raywenderlich tutorial可以。在那里,他们展示了如何使用CAShapeLayer制作圆形指示器。