2013-04-16 15 views
0

中沒有相同的劃分我正在使用「DrawLinearGradient」函數繪製漸變線。但是,我使用的兩種顏色並不是一致的。我正在使用「DrawLinearGradient」函數繪製漸變線。但是我使用的兩種顏色在行

CGColorSpace colorSpace = CGColorSpace.CreateDeviceRGB(); 
CGColor[] colors = {UIColor.Red.CGColor,UIColor.Green.CGColor}; 
float[] locations = {0.0f,0.5f,0.5f,1.0f}; 

CGGradient gradient = new CGGradient(colorSpace,colors,locations); 
ColorMessage.FontSize = width; 
context.SetLineWidth(width); 
context.SaveState(); 
context.Clip(); 

context.DrawLinearGradient(gradient,penVertices[0],penVertices[count-1],0); 

context.StrokePath(); 
gradient.Dispose(); 
colorSpace.Dispose(); 
context.RestoreState(); 
+1

您是否試圖從位置數組中刪除0.5f中的一個? – kovpas

+0

您正在指定兩種顏色但四個位置。你在期待什麼? –

回答

0

我假設Mono實現與原始C實現具有相同的需求。

CGGradientCreateWithColors(colorSpace, colors, locations[])的文檔(即應該對應new CGGradient(colorSpace,colors,locations);在單聲道)可以讀取

locations陣列應包含相同數量的項作爲colors陣列。

在你的代碼,但是你逝去的顏色,但位置。

既然你的意思是「在行中平分」,你應該重複兩次顏色。

CGColor[] colors = {UIColor.Red.CGColor, UIColor.Red.CGColor, UIColor.Green.CGColor ,UIColor.Green.CGColor}; 
float[] locations = {0.0f,0.5f,0.5f,1.0f}; 
相關問題