变量未更新

时间:2019-06-06 15:52:37

标签: ios swift

我认为我的函数setCoeff()不会更新coeff变量,因为我的BadgeView没看到任何变化。如何打印该行的内容?我在BadgeView文件中定义了ViewController类。

ViewController

if let ElapsedPercentual:Int = JSON.value(forKeyPath: "ResponseEntity.ElapsedPercentual") as? Int {
    porcentaje = ElapsedPercentual
    print(porcentaje)

    BadgeView().setCoeff(coeff: CGFloat(porcentaje)/100, animated: true) 
}

BadgeView

private(set) var coeff: CGFloat = 0.2 {
    didSet {
        updateFillViewFrame()
    }
}

public func setCoeff(coeff: CGFloat, animated: Bool) {
    if animated {
        UIView.animate(withDuration: 0.5, animations:{ () -> Void in
            self.coeff = coeff
        })
    } else {
        self.coeff = coeff
    }
}

已解决::我忘了将情节提要上的UIView连接到ViewController,然后将其键入BadgeView才可以使用!

1 个答案:

答案 0 :(得分:1)

问题出在BadgeView().setCoeff(coeff: CGFloat(porcentaje)/100, animated: true)上。在这一行中,您正在创建BadgeView的新实例并在其上调用一个方法。不显示在UI中的实例。

尝试了解OOP概念, 参考: https://www.math.uni-hamburg.de/doc/java/tutorial/java/javaOO/classvars.html