2016-06-03 2 views
4

Это мой метод анимации (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") 

    } 
} 

Это моя детская площадка файл

и площадка в проекте штурмана

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

ответ

7

Xcode 7, Свифт 2

Добавить

import XCPlayground 

в верхней части детской площадки, а затем использовать

XCPlaygroundPage.currentPage.liveView = view 

в нижней части игровой площадки, где view является вид, который вы хотите отобразить.

Вам также нужно открыть «Помощник редактора» (в меню «Вид»), чтобы увидеть текущий режим просмотра в реальном времени.

Кроме того, если вы используете асинхронные операции, вы должны включить

XCPlaygroundPage.currentPage.needsIndefiniteExecution = true 

для того, чтобы использовать их в Playground.

Xcode 8, Swift 3

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

Ах, я только что заметил в вашем скриншоте вы на самом деле уже с помощью XCPlayground. Тогда проблема может быть связана с встроенным представлением, вместо этого она должна работать с редактором помощника. – Moritz

+2

О, я не знал, что мне нужно использовать редактор ассистентов. Спасибо. –

Смежные вопросы