如何画一个矩形?

时间:2011-11-19 15:42:10

标签: iphone objective-c drawrect

我想在viewContoller的视图中绘制一个填充的矩形。 我在viewDidLoad中编写了下面的代码。但没有变化。 有什么问题?

CGRect rectangle = CGRectMake(0, 100, 320, 100);
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetRGBFillColor(context, 1.0, 0.0, 0.0, 1.0);
CGContextSetRGBStrokeColor(context, 1.0, 0.0, 0.0, 1.0);
CGContextFillRect(context, rectangle);

4 个答案:

答案 0 :(得分:43)

您无法在viewController中执行此操作。 您需要扩展View并在“drawRect:”

下添加代码

这将改变视图的绘图逻辑。

-(void) drawRect:(CGRect)rect{    
[super drawRect:rect];  
    CGRect rectangle = CGRectMake(0, 100, 320, 100);
    CGContextRef context = UIGraphicsGetCurrentContext();
    CGContextSetRGBFillColor(context, 1.0, 0.0, 0.0, 1.0);
    CGContextSetRGBStrokeColor(context, 1.0, 0.0, 0.0, 1.0);
    CGContextFillRect(context, rectangle);
}

答案 1 :(得分:3)

您无法直接在viewDidLoad中渲染;这是视图本身必须在他们的drawRect方法中运行它。

“绘制”矩形的最简单方法是放置一个带有背景颜色的UIView。在你的视图中的边框。 (您可以通过视图的CALayer方法设置边框。即myView.layer.borderColor = [[UIColor redColor] CGColor];

答案 2 :(得分:3)

为了清楚起见:

如果您需要绘制具有相同填充和边框颜色的矩形,则可以替换:

CGContextSetRGBFillColor(context, 1.0, 0.0, 0.0, 1.0);
CGContextSetRGBStrokeColor(context, 1.0, 0.0, 0.0, 1.0);

使用:

 [[UIColor redColor] set];

答案 3 :(得分:2)

现代2018解决方案..

override func draw(_ rect: CGRect) {

    let r = CGRect(x: 5, y: 5, width: 10, height: 10)

    UIColor.yellow.set()
    UIRectFill(r)
}

是的。