2015-05-14 2 views
9

Я хочу создающие простой круговой погрузчик анимации круга и границы вокруг него, которая исчезаетКак реализовать круговой погрузчик без SKShapeNode

я нашел большие системы, но они используют SKShapeNode и производительность SKShapeNode страшен для фактического развертывания приложения

ProgressNode: Very cool framework

+2

Это может быть не лучшее решение, но вы можете легко анимировать массив текстур. Или, если вы ищете что-то более динамичное, вы можете использовать узел обрезки (хотя узлы урожая также могут быть дорогими) с помощью SKActions для получения аналогичного эффекта. Имейте в виду, что производительность SKShapeNode плохая, если вы используете только круговой загрузчик для своего пользовательского интерфейса, тогда производительность не должна быть проблемой. Только если вам нужно использовать его в игре, если вы, возможно, решите не использовать его. –

+0

, к сожалению, мне это нужно для игры, но цвет круга и граница динамичны. – grape1

+0

Одним из способов сделать это может быть преобразование CCProgressTimer из cocos2D в Metal/SpriteKit. Он использует прогрессивный квадрат квадратного треугольника, чтобы «замаскировать» текстуру. Это очень элегантное и эффективное решение: http://fancyratstudios.com/2010/02/programming/progresstimer-for-cocos2d/ – Confused

ответ

0

Вы можете использовать UIView в UIImageView с «погрузочным кругом», как изображение и просто позволить повернуть его. Вот пример класса:

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.

+0

CAShapeLayer точно такой же, как SKShapeNode. – Confused