我正在将应用程序从Windows移植到Mac OS X.在这里,我对使用不同术语感到困惑。
在Windows上,我们使用SetBkColor
设置设备上下文的背景颜色。
在Mac OS X上,setFill
设置填充颜色。
Windows的这种背景颜色与Mac OS X的填充颜色有什么区别吗?
对于笔画清除(按setStroke
),我认为在Windows上,行CreatePen
和文本SetTextColor
的效果相同。这个概念还可以吗?
答案 0 :(得分: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具有非常可比性,并且在我看来更丰富的绘图功能。 (以上示例来自本指南)