2013-10-30 351 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