gpt4 book ai didi

ios - 在 swift 4 中更改自定义绘图的颜色

转载 作者:行者123 更新时间:2023-11-28 14:53:10 25 4
gpt4 key购买 nike

所以我有一个 slider 可以更改 UIColor 的色调值。我希望我的自定义绘图具有完全这种颜色。

我的自定义绘图类如下所示:

class CircleView: UIView {

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

override func draw(_ rect: CGRect) {

if let context = UIGraphicsGetCurrentContext() {
context.addArc(center: CGPoint(x: bounds.midX, y: bounds.midY), radius: bounds.height / 2, startAngle: 0, endAngle: 2*CGFloat.pi, clockwise: true)
color.setFill()
context.fillPath()
}
}

}

在我的 viewController 中,我有一个属性观察器,它应该改变我的自定义绘图类绘制的圆的颜色:

我的属性:

private var hueValue: Float = 0.0 {
didSet {
color = UIColor(hue: CGFloat(hueValue), saturation: 1, brightness: 1, alpha: 1)
backgroundView.backgroundColor = color
circle.color = color
}
}
var color = UIColor()
var circle = CircleView()

还有我的 Action 方法:

@IBAction func colorSliderChanged(_ sender: UISlider) {
hueValue = sender.value
}

Action 方法更改色调值,从而更改背景 View 的颜色。但它不会改变圆圈的颜色。圆圈保持白色。

有什么想法吗?

这是应用程序的屏幕截图: enter image description here

最佳答案

如果您在 Storyboard 中添加了一个 UIView,并且您已将其自定义类设置为 CircleView,但您创建一个@IBOutlet 连接到它,您的代码无权访问该 View 。

如果您有 var circle = CircleView() 但您还没有将that View 添加到您的 View 中,则您对 circle 所做的任何更改都不会显示在屏幕上。

在您的 Storyboard中,添加您的UIView,将其类更改为CircleView,然后然后按住ctrl 并拖动以创建您的@ IBOutlet。 Xcode 会自动将它设置为 @IBOutlet weak var circle: CircleView!,你可以设置它的颜色(不要忘记删除 var circle = CricleView() 行).

关于ios - 在 swift 4 中更改自定义绘图的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49630649/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com