我有四个点,分别是(x1,y1), (x2,y2), (x2,y3)和(x4,y4)。我需要用这些点画一个矩形,并在矩形内填充颜色。请问有人可以帮我吗?
我有四个点,分别是(x1,y1), (x2,y2), (x2,y3)和(x4,y4)。我需要用这些点画一个矩形,并在矩形内填充颜色。请问有人可以帮我吗?
首先,获取当前的图形上下文:
CGContextRef context = UIGraphicsGetCurrentContext();
接下来,定义矩形:
CGRect myRect = {x1, y1, x2 - x1, y2 - y1};
现在,设置填充颜色,例如红色。
CGContextSetRGBFillColor(context, 1.0, 0.0, 0.0, 1.0);
设置描边颜色,例如绿色:
CGContextSetRGBStrokeColor(context, 0.0, 1.0, 0.0, 1.0);
最后,填充矩形:
CGContextFillRect(context, myRect);
UIBezierPath
对象。移动到第一个点,然后对于你的下一个三个点调用 addLineToPoint:
方法。最后调用 closePath
方法。fill
或 stroke
此路径,或者如果要使用核心图形,则可以获取 CGPath
。 func drawOldStyle() {
guard let context = UIGraphicsGetCurrentContext() else{
return
}
//Next, define the rectangle:
let myRect = CGRect(x: 30, y: 100, width: 100, height: 20)
//Now, set the fill color, e.g red
context.setFillColor(UIColor.red.cgColor)
//Set the stroke color, e.g. green:
context.setFillColor(UIColor.green.cgColor)
//Finally, fill the rectangle:
context.fill( myRect)
// AND Stroke:
context.stroke(myRect)
}
CGContextFillRect
不会绘制边框,您还需要添加CGContextStrokeRect
。 - Gianluca P.