所以我有一个在后台播放的视频和两个淡出的按钮图像。两者都很好,但在模拟器上,当我启动应用程序时,我在白色屏幕上看到按钮图像,然后它开始播放视频和动画。我还在每个图像的主故事板中将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