UIview剂量在调用视图控制器时不响应

时间:2016-04-17 19:41:39

标签: ios iphone swift uiview

奇怪的事情正在向我倾诉,我有一个uiviewcontroller,里面有一个带有2个视图的UIView,可以显示图形条的错觉:

The UIVIEW with bars

现在问题是我第一次打开视图控制器没有任何反应,在切换到另一个视图然后回来之后,酒吧不会加注,一切都很好,酒吧加注。 现在这里是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)}

1 个答案:

答案 0 :(得分:1)

您无法在viewDidLoad中制作动画,因为视图尚未在界面中。视图已加载;这意味着视图控制器具有视图。但尚未添加到界面中。在添加界面之前,您无法在视图上执行动画;您甚至无法在同一个runloop中的视图上执行动画,就像将其添加到界面中一样。在您尝试为其设置动画之前,视图必须已在界面中 并在那里完全建立。