原生 Windows 开发和 iOS/Mac OS 上的 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