我不明白这个功能是如何运作的 如果我想改变" View"的背景颜色。我将访问View的background属性并更改它的值
let containerView = CustomView(frame: CGRect(x: 0, y: 0, width: 400, height: 400))
containerView.backgroundColor = UIColor.blue
但是当我想在draw()函数中改变矩形的颜色时 我只是调用UIColor.green.set()函数。为什么此函数会更改矩形的颜色
class CustomView: UIView {
override func draw(_ rect: CGRect) {
super.draw(rect)
let rect = UIBezierPath(roundedRect: CGRect(x: 150, y: 150, width: 100, height: 100), cornerRadius: 5.0)
UIColor.green.set() // <- Why this line change rect color ?
rect.fill()
}
}
答案 0 :(得分:0)
UIView
具有.backgroundColor
属性。当UIKit想要显示视图时,它会检查.backgroundColor
属性和&#34;填充&#34;那种颜色的背景。
UIColor.green.set()
和rect.fill()
更改 视图的背景颜色。
当您覆盖draw(_ rect: CGRect)
函数时,UIKit已经完成了.backgroundColor
属性的处理,并根据需要填充了背景。 您的 代码然后&#34;绘制一个填充的矩形&#34;在背景上。