2015-11-22 112 views
0

所以我有一個在背景中播放的視頻和淡入的兩個按鈕圖像。兩者都工作正常,但是在模擬器上啓動應用程序時,我看到按鈕在白色屏幕上的圖像,然後它進入播放視頻和動畫。我還在每張圖片的主要故事板上將alpha設置爲0。不知道這是一個模擬器/啓動屏幕毛刺或我的代碼。我的代碼如下,任何幫助表示讚賞。謝謝!UIButton圖像在動畫開始淡出之前出現在啓動畫面中

import UIKit 
import Parse 
import MediaPlayer 


class ViewController: UIViewController { 
    @IBOutlet var loginAlpha: UIButton! 
    @IBOutlet var signupAlpha: UIButton! 


    var avPlayer: AVPlayer! 
    var avPlayerLayer: AVPlayerLayer! 
    var paused: Bool = false 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     // code for background video 

       let theURL = NSBundle.mainBundle().URLForResource("test", withExtension: "mp4") 

       avPlayer = AVPlayer(URL: theURL!) 
       avPlayerLayer = AVPlayerLayer(player: avPlayer) 
       avPlayerLayer.videoGravity = AVLayerVideoGravityResizeAspectFill 
       avPlayer.volume = 0 
       avPlayer.actionAtItemEnd = AVPlayerActionAtItemEnd.None 

       avPlayerLayer.frame = view.layer.bounds 
       view.backgroundColor = UIColor.clearColor(); 
       view.layer.insertSublayer(avPlayerLayer, atIndex: 0) 

       NSNotificationCenter.defaultCenter().addObserver(self, 
        selector: "playerItemDidReachEnd:", 
        name: AVPlayerItemDidPlayToEndTimeNotification, 
        object: avPlayer.currentItem) 
      } 

      func playerItemDidReachEnd(notification: NSNotification) { 
       let p: AVPlayerItem = notification.object as! AVPlayerItem 
       p.seekToTime(kCMTimeZero) 
      } 

      override func viewDidAppear(animated: Bool) { 
       signupAlpha.alpha = 0 
       loginAlpha.alpha = 0 

       UIView.animateWithDuration(1.5, delay: 1.0, options: [], animations: {() -> Void in 
        self.signupAlpha.alpha = 1.0 
        self.loginAlpha.alpha = 1.0 

        }, completion: nil) 

        avPlayer.play() 
        paused = false 
      } 

      override func viewDidDisappear(animated: Bool) { 
       avPlayer.pause() 
       paused = true 
      } 

    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
     // Dispose of any resources that can be recreated. 
} 
} 
+0

嘗試添加該viewDidLoad – alaphao

+0

上線'signupAlpha.alpha = 0'和'loginAlpha.alpha = 0'我最初嘗試過,移動它,甚至複製它,它有相同的結果。有趣的是,我在主故事板中移動了按鈕,而且我在啓動屏幕上看到的圖像顯示了它們最初放置的按鈕,但是當應用程序經過代碼的其餘部分並運行視頻和動畫時按鈕是現在放置在主要故事板中的位置。 – PsYcHoSiD

回答

0

我發現這是一個簡單的解決方案:

viewDidLoad(可以設置這個在故事板了。)

loginAlpha.hidden = true 
    signupAlpha.hidden = true 

viewDidAppear

signupAlpha.alpha = 0 
    loginAlpha.alpha = 0 
    loginAlpha.hidden = false 
    signupAlpha.hidden = false