【发布时间】:2017-05-30 16:36:06
【问题描述】:
这是我第一次遇到 drawRect 的问题。我有一个简单的 UIView 子类,其中包含要填充的路径。一切顺利。路径被正确填充,但无论如何背景仍然是黑色。我该怎么办?我的代码如下:
var color: UIColor = UIColor.red {didSet{setNeedsDisplay()}}
private var spaceshipBezierPath: UIBezierPath{
let path = UIBezierPath()
let roomFromTop: CGFloat = 10
let roomFromCenter: CGFloat = 7
path.move(to: CGPoint(x: bounds.minX, y: bounds.maxY))
path.addLine(to: CGPoint(x: bounds.minX, y: bounds.minY+roomFromTop))
path.addLine(to: CGPoint(x: bounds.midX-roomFromCenter, y: bounds.minY+roomFromTop))
path.addLine(to: CGPoint(x: bounds.midX-roomFromCenter, y: bounds.minY))
path.addLine(to: CGPoint(x: bounds.midX+roomFromCenter, y: bounds.minY))
path.addLine(to: CGPoint(x: bounds.midX+roomFromCenter, y: bounds.minY+roomFromTop))
path.addLine(to: CGPoint(x: bounds.maxX, y: bounds.minY+roomFromTop))
path.addLine(to: CGPoint(x: bounds.maxX, y: bounds.maxY))
path.addLine(to: CGPoint(x: bounds.minX, y: bounds.maxY))
return path
}
override func draw(_ rect: CGRect) {
color.setFill()
spaceshipBezierPath.fill()
}
【问题讨论】:
-
我不确定,但可能在 spaceshipBezierPath 的返回路径之前添加
path.close() -
不。试过了,但没有用。感谢您的帮助
-
@Nikhi Sridhar,我使用你的代码来绘制矩形,但得到颜色,在我看来你的红色是蓝色,你的黑色是白色。你想得到什么效果?
标签: ios swift uiview colors draw