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

时间:2015-11-22 00:48:32

标签: ios xcode swift 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.
}
}

1 个答案:

答案 0 :(得分:0)

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

on viewDidLoad(你也可以在故事板上设置它。)

    loginAlpha.hidden = true
    signupAlpha.hidden = true

viewDidAppear

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