2013-10-30 156 views
0

我正在将应用程序从Windows移植到Mac OS X.在这里,我对使用不同的术语有所混淆。填充颜色和背景颜色之间的区别

在Windows上,我们使用SetBkColor来设置设备上下文的背景颜色。

在Mac OS X上,有setFill可以设置填充颜色。

Windows的这种背景颜色和Mac OS X的填充颜色之间是否有区别?

对于笔画清晰(由setStroke),我认为在Windows上,同样的效果是由CreatePen行和SetTextColor文本实现。这个概念好吗?

回答

1

iOS/Mac OS上的本地Windows开发和Core Graphics都使用绘图的所谓“画家模型”。就像实际的绘画一样,你为你的笔或笔刷选择一种颜色,并从中选择你所画的任何东西,填满你所拥有的东西,直到你改变它为止。在Mac上,更具体地说,您可以为文本和边框等内容设置描边,并填充填充的方法。你必须分别设置每个完成不同的事情。

SetBkColor会不同,因为它会填充到背景中,在Mac或iOS上,您将改为设置填充颜色,然后使用绘图方法填充矩形 - 通常这将全部通过覆盖视图的drawRect方法。例如,下面是做到这一点的一种方法:

- (void)drawRect:(NSRect)rect 
{ 
    CGContextRef myContext = [[NSGraphicsContext currentContext] graphicsPort]; 

    // ********** Your drawing code here ********** 
    CGContextSetRGBFillColor (myContext, 1, 0, 0, 1); // set my 'brush color' 
    CGContextFillRect (myContext, CGRectMake (0, 0, 200, 100)); // fill it 

    CGContextSetRGBFillColor (myContext, 0, 0, 1, .5); // set my brush color 
    CGContextFillRect (myContext, CGRectMake (0, 0, 100, 200)); //fill it 
} 

绘图完成后到前,所以,如果你想的背景设定为某一种颜色,只需将作出这样的第一操作,并填写完整窗口/查看矩形与任何你喜欢的颜色。

查看Quartz 2D绘图指南了解更多示例。如果你来自Windows,你会发现Quartz/Core Graphics具有很强的可比性,并且在我脑海中拥有更丰富的绘图功能。 (以上示例来自本指南)

https://developer.apple.com/library/mac/documentation/graphicsimaging/conceptual/drawingwithquartz2d/dq_context/dq_context.html