我认为我的函数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
才可以使用!
答案 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