Swift函数不更新绘图

时间:2016-01-29 22:15:10

标签: swift function draw geometry

我的视图控制器中有一个步进器来更新变量(redd1,greenn1,bluee1)。我有一个通过drawRect函数绘制的圆圈。函数updateColor()假设使用变量中更新的颜色绘制一个新圆。当我打印出变量的新值时,它们会变得正确,但圆圈的颜色仍然不会改变。

G[4]["other"]

1 个答案:

答案 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
    }
}

enter image description here