2011-07-05 69 views
0

我有一個任務在UIView單元之間繪製一個2px高度的分隔線。因此,在具有Retina顯示器的iPhone模擬器上,在iPad模擬器上可以清楚地看到這兩條線條以不同的顏色(#F1F1F1和#DDDDDD部分)清晰可見(#F1D1D2DDDDD部分) - 線條失真,並且沒有這種顏色的線條。用於繪製例如線在iPad上畫線的奇怪問題

代碼片段:

CGContextRef context = UIGraphicsGetCurrentContext(); 
CGContextSaveGState(context);  
CGContextSetLineWidth(context, 1.); 

CGContextSetStrokeColor(context, CGColorGetComponents(
      [[GlobalHelper colorFromHexRGB:@"#F1F1F1"] CGColor])); 

CGContextMoveToPoint(context, 0., line_y); 
CGContextAddLineToPoint(context, rect.size.width, line_y); 
CGContextStrokePath(context); 
CGContextRestoreGState(context); 
CGContextSaveGState(context);  
CGContextSetLineWidth(context, 1.); 

CGContextSetStrokeColor(context, 
        CGColorGetComponents([[GlobalHelper colorFromHexRGB:@"#DDDDDD"] CGColor])); 

line_y += 1.; 
CGContextMoveToPoint(context, 0., line_y); 
CGContextAddLineToPoint(context, rect.size.width, line_y); 
CGContextStrokePath(context); 
CGContextRestoreGState(context); 

對於查看對象,它用作繪圖線保持器(這是的UITableViewCell的子類)。我試着改變參數「opaque」和「clearsContextBeforeDrawing」。同樣的結果 - iPhone Retina一切正常,iPad - 線路失真。

什麼是造成這種情況,以及如何解決它的任何想法?

回答

3

一個想法:在整數座標上繪製的1像素寬線會變模糊,因爲該線的一半將位於像素邊界的每一側。嘗試在你的line_y座標中加0.5,看看它是否能解決你的問題。