很快,我有一个应用程序在首次启动时显示了“教程”。我想要一个简单的动画,第一个动画在其中,第二个动画在之后。我想这是非常快速的。虽然,按照我当前的代码,当视图/应用程序加载时,所有这些都正确显示。
代码:
let welcomeLabel = UILabel()
let learnToPlayButton = UIButton()
welcomeLabel.alpha = 0
learnToPlayButton.alpha = 0
welcomeLabel.text = "Welcome to ReactFast!"
welcomeLabel.font = UIFont(name: "HelveticaNeue-Light", size: 35)
welcomeLabel.textAlignment = .Center
welcomeLabel.textColor = UIColor.whiteColor()
welcomeLabel.frame = CGRectMake(85, 30, 400, 200)
learnToPlayButton.setTitle("Click here to learn how to play.", forState: .Normal)
learnToPlayButton.setTitleColor(UIColor.whiteColor(), forState: .Normal)
learnToPlayButton.titleLabel.font = UIFont(name: "HelveticaNeue-UltraLight", size: 35)
learnToPlayButton.titleLabel.textAlignment = .Center
learnToPlayButton.addTarget(self, action: "learnToPlay:", forControlEvents: .TouchUpInside)
learnToPlayButton.frame = CGRectMake(37, 70, 500, 200)
if NSUserDefaults.standardUserDefaults().boolForKey("hasLaunchedOnce") {
//app has already launched before
} else {
NSUserDefaults.standardUserDefaults().setBool(true, forKey: "hasLaunchedOnce")
NSUserDefaults.standardUserDefaults().synchronize()
//first time launch
UIView.animateWithDuration(1.5, animations: {
self.view.addSubview(self.welcomeLabel)
self.view.addSubview(self.learnToPlayButton)
self.welcomeLabel.alpha = 1.0
self.learnToPlayButton.alpha = 1.0
})
}
动画代码的放置可能导致缺少动画。viewDidLoad在视图控制器生命周期中还为时过早,因此您无法尝试对其中的任何内容进行动画处理。
相反,您应该做的是将所有设置代码都保留在viewDidLoad中,然后将动画代码添加到viewDidAppear:方法中,以便在视图实际出现在scree上时立即开始动画。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句