UIButton图像在淡入动画开始之前会出现在启动屏幕中



所以我有一个在后台播放的视频和两个淡出的按钮图像。两者都很好,但在模拟器上,当我启动应用程序时,我在白色屏幕上看到按钮图像,然后它开始播放视频和动画。我还在每个图像的主故事板中将alpha设置为0。不确定这是模拟器/启动屏幕故障还是我的代码。我的代码在下面,任何帮助都将不胜感激。谢谢

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.
}
}

我找到了一个简单的解决方案:

viewDidLoad上(你也可以在故事板上设置这个。)

    loginAlpha.hidden = true
    signupAlpha.hidden = true

viewDidAppear

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

最新更新