核心图形在一行中绘制带边框的矩形

时间:2012-12-04 19:13:25

标签: objective-c ios core-graphics

如何在一行中绘制带边框的矩形?

有单独的方法,如:

CGContextStrokeRect(context, someRectangle);

CGContextFillRect(context, someRectangle);

但是有什么东西可以兼得吗?

3 个答案:

答案 0 :(得分:9)

- (void)drawRect:(CGRect)rect {
    CGContextRef context = UIGraphicsGetCurrentContext();
    CGPathRef path = CGPathCreateWithRect(rect, NULL);
    [[UIColor redColor] setFill];
    [[UIColor greenColor] setStroke];
    CGContextAddPath(context, path);
    CGContextDrawPath(context, kCGPathFillStroke);
    CGPathRelease(path);
}

虽然,我不能说它比中风更简洁。填写单独的电话......

答案 1 :(得分:6)

如果您只是想节省行空间,可以定义自己的方法来进行两次调用并将其放在实用程序类中。

void strokeAndFill(CGContextRef c, CGRect rect)
{
    CGContextFillRect(c, rect);
    CGContextStrokeRect(c, rect);
}

答案 2 :(得分:-1)

如果您事先设置填充和描边颜色,CGContextDrawPath会一试。

CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetStrokeColor(context, a);
CGContextSetFillColor(context, b);
CGContextDrawPath(context, rect)