ios - 更新 didSet 上的上下文填充颜色

标签 ios swift uiview

我制作了一个自定义的UIView,它基本上是一个彩色圆圈。但是,当我更改圆圈的颜色属性时,它不会更新。我怎样才能做到这一点?

代码

class CircleView : UIView {

    var color = UIColor.blue {
        didSet {
            // WHAT DO I DO!?
        }
    }

    override init(frame: CGRect) {
        super.init(frame: frame)
    }

    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
    }

    override func draw(_ rect: CGRect) {

        guard let context = UIGraphicsGetCurrentContext() else {return}

        context.addEllipse(in: rect)
        context.setFillColor(color.cgColor)
        context.fillPath()

    }
}

最佳答案

尝试以下方法

var color = UIColor.blue {
    didSet {
        setNeedsDisplay()
    }
}

关于ios - 更新 didSet 上的上下文填充颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45521540/

相关文章:

ios - 将 UITableView 添加为 SubView 时发送到实例的无法识别的选择器

swift - 自动调整 UITextView 的兼容性 - Swift 3

swift - 设置文本以适合 UILabel 的大小并在 SWIFT 中居中

ios - UIPageViewController 显示黑屏

iphone - 如何制作这样的自定义模式 uiview?

ios - iPhone XS 没有 UDID

swift - 我无法删除 UITableViewCell 中图像的左边框

swift - 你能在 Swift 中为 UIRefreshControl 创建自定义 View 吗?

iphone - 如何以编程方式向 View 添加多个标签而不用担心其 Y 位置?

swift - 在 View Controller 生命周期中的何处添加 subview