奇怪的事情正在向我倾诉,我有一个uiviewcontroller,里面有一个带有2个视图的UIView,可以显示图形条的错觉:
现在问题是我第一次打开视图控制器没有任何反应,在切换到另一个视图然后回来之后,酒吧不会加注,一切都很好,酒吧加注。 现在这里是catch,ViewDidLoad和ViewWillApper使用相同的函数,并通过断点和println所有数据到达uiviewAnimation以获得条形图的上升,但不会发生,除非重新加载视图
发生了什么事?拜托我吧
override func viewDidLoad() {
super.viewDidLoad()
TimeNow()
InsertNetoToCircul()
InsertSpendIntoCircul()
Checking()
AdvicesFunction()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
InsertNetoToCircul()
InsertSpendIntoCircul()
Checking()
AdvicesFunction()
}
func SpendBar(high : CGFloat,income:Float){
if high < 1{
OtzaotLabel.hidden = true
}
else{
OtzaotLabel.hidden = false
}
if income < 1{
LoLabel.hidden = true
}
else{
LoLabel.hidden = false
}
SpendBarView.frame.origin.x = 38
SpendBarView.frame.origin.y = 335
SpendBarView.frame.size.width = 70
// Calculate location in bar
//Spendings
var Mana:Int = (Int(high) / 500) * 30
var Sher:Float! = ((Float(high) % 500) / 500 ) * 30
if Rate{ Mana /= 2 }
UIView.animateWithDuration(0.4, animations: {
self.SpendBarView.frame.size.height = -CGFloat(Float(Mana) + Sher)
})
SpendBarView.backgroundColor = UIColor(red: 1.0, green: 0.4, blue: 0.4, alpha: 1)}
答案 0 :(得分:1)
您无法在viewDidLoad
中制作动画,因为视图尚未在界面中。视图已加载;这意味着视图控制器具有视图。但尚未添加到界面中。在添加界面之前,您无法在视图上执行动画;您甚至无法在同一个runloop中的视图上执行动画,就像将其添加到界面中一样。在您尝试为其设置动画之前,视图必须已在界面中 并在那里完全建立。