我的视图控制器中有一个步进器来更新变量(redd1,greenn1,bluee1)。我有一个通过drawRect函数绘制的圆圈。函数updateColor()假设使用变量中更新的颜色绘制一个新圆。当我打印出变量的新值时,它们会变得正确,但圆圈的颜色仍然不会改变。
G[4]["other"]
答案 0 :(得分:1)
每次要更改颜色时,您都在创建并添加新圆圈(UIView
)。你为什么不简单地改变现有圆圈的颜色?
class Foo: UIView {
var red: Float = 255
var green: Float = 0
var blue: Float = 0
private let circle = UIView(frame: CGRect(x: -25.0, y: 10.0, width: 100.0, height: 100.0))
private var circleColor: UIColor {
return UIColor(
red: (CGFloat(self.red))/255,
green: (CGFloat(green))/255,
blue: (CGFloat(blue))/255,
alpha: 1.0)
}
override init (frame: CGRect) {
super.init(frame: frame)
addCircle()
}
required init(coder aDecoder: NSCoder) {
fatalError("This class does not support NSCoding")
}
private func addCircle() {
circle.layer.cornerRadius = 50.0
circle.backgroundColor = self.circleColor
addSubview(circle)
}
func updateColor() {
circle.backgroundColor = self.circleColor
}
}