2012-08-02 74 views
1

我有一個UIViewController,它有一個UIView,我想繪製一條直線虛線。什麼是最簡單和高性能的方法來做到這一點?我該怎麼做呢?它將只是一個寬度爲150的灰色水平虛線。我環顧四周,似乎使用 CGContextSetLineDash是解決方案,這是我到目前爲止有:從UIViewController繪製虛線

-(void) drawRect:(CGRect) rect 
{ 
    CGContextRef context = UIGraphicsGetCurrentContext(); 
    CGContextSetLineWidth(context, 100); 
    CGFloat dashes[] = {1,1}; 
    CGContextSetLineDash(context, 2.0, dashes, 2); 
    CGContextStrokePath(context); 
} 
+0

爲了得到有用的答案,你需要證明你做了什麼,在哪裏,你就完蛋了。沒有人會爲您編寫完整的程序,但我們很樂意幫助您採取特定步驟並朝正確的方向推動。 – Dustin 2012-08-02 19:06:03

+0

對不起,我剛添加了我的代碼,我在哪裏..不介意我的問題投票? – xonegirlz 2012-08-02 19:06:56

+0

當你使用這段代碼時會發生什麼? – Dustin 2012-08-02 19:18:59

回答

3

CGContextStrokePath提請當前路徑,但是,你從來沒有任何路徑添加到您的背景下,這樣沒有畫。

CGContextStrokePath調用之前添加下面兩行,你應該看到的東西:

CGContextMoveToPoint(context, 0, self.bounds.size.height * 0.5); 
CGContextAddLineToPoint(context, self.bounds.size.width, self.bounds.size.height * 0.5); 

如果您還沒有設置您的筆觸顏色,你還應該添加這樣的事情(50%灰):

CGContextSetRGBStrokeColor(context, 0.5, 0.5, 0.5, 1.0); 

我不知道,如果結果真的是你想要的,用的一個模式的100點虛線{1,1}看起來更像是不是像虛線以縱條紋狀的矩形。如果你想讓你的圓點成爲圓形,你將不得不通過某種循環手動繪製這些圓點。

+0

嗯..我怎麼得到虛線?模式應該是什麼? – xonegirlz 2012-08-02 20:45:18

+0

你想讓它看起來像什麼,你可能會展示一張圖片嗎? – omz 2012-08-02 21:01:10

0

試試這個:

CGContextRef context = UIGraphicsGetCurrentContext(); 

CGContextSetFillColorWithColor(context, [UIColor redColor].CGColor); 
CGColorSpaceRef colorspace = CGColorSpaceCreateDeviceRGB(); 
CGContextSetStrokeColorWithColor(context, color.CGColor); 


CGContextSetLineWidth(context, 2.0); 

CGFloat lengths[] = {0, 8}; 
CGContextSetLineCap(context, kCGLineCapRound); 
CGContextSetLineDash(context, 0.0f, lengths, 2); 

CGContextMoveToPoint(context, 10, 10); 
CGContextAddLineToPoint(context, 200, 10); 

CGContextStrokePath(context); 
CGColorSpaceRelease(colorspace);