2014-03-03 85 views
1

如標題所示,適用於我的NSBezierPathsetLineDash不會更改描邊線。根本沒有效果。NSBezierPath setLineDash不會產生任何效果

我期望它能讓我的線條破滅。在圖片上看到兩條垂直的紅線。

代碼:

NSBezierPath* p= [NSBezierPath bezierPath]; 
CGFloat x = r.origin.x + r.size.width/2; 

float dash_pattern[]={15.,15.}; 
NSInteger count = sizeof(dash_pattern)/sizeof(dash_pattern[0]); 
[p setLineDash:(CGFloat*)dash_pattern count:count phase:0.]; // no effect ? 

[p moveToPoint:NSMakePoint(x, r.origin.y+r.size.height)]; 
[p lineToPoint:NSMakePoint(x, [view bounds].origin.y+[view bounds].size.height)]; 
[[NSColor redColor]set]; 

[p stroke]; 

enter image description here

回答

5

這是一個位在黑暗中拍攝,但在6​​4位OS X,CGFloatdouble而不是float。因此,您應該定義數組作爲

CGFloat dash_pattern[]={15.,15.}; 

這也使得在setLineDash:(CGFloat*)dash_pattern不必要的顯式轉換。

+0

HOLY CRAP。工作。 – LiMar

+0

你已經救了我的一天,哥們! –

相關問題