2016-12-15 38 views
0

所以,我有這樣的代碼:斯威夫特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