设置CGContextRef的颜色

时间:2012-08-13 20:10:21

标签: iphone objective-c core-graphics

我只是想知道在setStroke方法中根本没有提到context时,context如何知道设置setStroke的笔画?

CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetLineWidth(context, 10);
[[UIColor colorWithRed:0.6 green:0.6 blue:0.6 alpha:1.0] setStroke];

顺便说一下,您多久以编程方式绘制自己的对象?

2 个答案:

答案 0 :(得分:3)

这是您的颜色setStroke的实现:

- (void)setStroke {
    CGContextSetStrokeColorWithColor(UIGraphicsGetCurrentContext(), self.CGColor);
}

它使用相同的函数来获取您正在使用的上下文。

答案 1 :(得分:2)

检索上下文以设置线宽的方式与颜色设置笔触的方式相同。原因是因为UIGraphicsGetCurrentContext()检索的主线程只有一个当前图形上下文。您可以推送和弹出不同的上下文,但该函数将始终返回当前的上下文。请记住,在iOS中,此函数不是线程安全的,只能从主线程调用。