2016-12-15 5 views
0

Итак, у меня есть этот код:Swift animatewithDuration() немедленно завершает

UIView.animate(withDuration: 10.0, delay: 0, options: .curveLinear , animations: { 
      self.gameLabel.alpha = 0 
}, completion: nil) 

Проблема заключается в том, когда этот код называется мгновенно переходит в 0 альфа и не медленно перехода. Что я делаю не так?

Вот еще контекст для кода:

var gameLabel = SKLabelNode() 

override func didMove(to view: SKView) { 
    gameLabel.fontColor = UIColor.white 
    gameLabel.fontSize = 85 
    gameLabel.setScale(0.40) 
    gameLabel.text = "this is a game" 
    gameLabel.position = CGPoint(x: 0, y: 0) 
    gameLabel.zPosition = 0 
    gameLabel.alpha = 1 

    addChild(gameLabel) 
} 

func touchDown(atPoint pos : CGPoint) { 
    UIView.animate(withDuration: 2, animations: { 
      self.gameLabel.alpha = 0 
    }) 
} 
+0

Ваш код анимации выглядит правильно. Можете ли вы разместить дополнительный контекст? Возможно, возникнет и другой фактор, вызывающий эту проблему. – nathan

+0

это в начале метода, или что-то другое, которое вызывается при нажатии на экран –

ответ

0

Итак, я решил мою проблему, запустив.

self.gameLabel.run(SKAction.fadeOut(withDuration: 10))

+0

Я собирался сказать. Обычно вы не можете использовать UIView.animation для анимации SKNodes и т. Д. Придерживайтесь SKActions все время. : D – Fogmeister

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