2016-07-01 238 views
1

如何從一個視圖控制器到下一個淡入淡出的動畫。所以基本上我想要的是當我點擊一個按鈕時,它從當前的視圖控制器淡出到它所鏈接的視圖控制器。有沒有辦法做到這一點。我一直在尋找一段時間,一直沒能在Swift中找到任何東西。感謝您的幫助!淡入淡出動畫Swift

+0

您是使用push還是modal瀏覽視圖控制器? –

回答

0

這是我的答案。我沒有讓每個場景成爲一個不同的ViewController,而是讓每個場景都成爲SKScene,併爲整個項目使用了一個ViewController。現在,從一個場景到另一個我用這樣的:「?self.scene .view .presentScene(gameScene,過渡:過渡」

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) { 
    for touch: AnyObject in touches { 
     // Get the location of the touch in this scene 
     let location = touch.location(in: self) 
     // Check if the location of the touch is within the button's bound 

     if L1.contains(location) { 
      let gameScene = GameScene() 
      gameScene.scaleMode = .resizeFill 
      gameScene.view?.ignoresSiblingOrder = true 
      let transition = SKTransition.fade(withDuration: 1) 
      self.scene?.view?.presentScene(gameScene, transition: transition) 
      print("tapped!") 
     } 
} 

這讓我用線來實現這個轉變的。我從視圖控制器轉移過來的原因不僅僅是爲了動畫,而且是爲了使應用程序更高效,讓它更好,更順暢。

4
let transition: CATransition = CATransition() 
    transition.duration = 0.4 
    transition.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut) 
    transition.type = kCATransitionFade 
    self.navigationController!.view.layer.addAnimation(transition, forKey: nil) 

    let vc = self.storyboard?.instantiateViewControllerWithIdentifier("vcID") as! My_ViewController 
    self.navigationController?.pushViewController(vc, animated: false) 
+0

我會把這個在視圖控制器裏面有按鈕的按鈕功能,或者我會把它放在故事板上的segue類中? – Nickolans

+0

把它放在按鈕按下功能 –

+0

它幾乎可以工作,但是我保持在「self.navigationController!.view.layer.addAnimation(transition,forKey:nil)」一行上得到這個錯誤:線程1:EXC_BREAKPOINT(code = 1,subcode = 0x1004d2588) – Nickolans