2011-07-05 8 views
0

UIViewセル間に2pxの高さのセパレータラインを描画する作業があります。トップ1pxハイラインの色は#F1F1F1、ボトム1pxハイラインの色は#DDDDDD です。その結果、RetinaディスプレイのiPhoneシミュレータでは、これらの2つのラインが異なる色(#F1F1F1と#DDDDDDパーツ)で明確に見えます。 - 線がひずんでいて、そのような色の線がありません。そのような線の描画に使用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ですべてOK、iPad用 - 線が歪んでいます。

これを引き起こしている原因や解決方法についてのアイデアはありますか?

答えて

3

1つのアイデア:整数の座標で描画された1ピクセル幅の線は、線の半分がピクセル境界の両側にあるため、ぼやけます。 line_y座標に0.5を加えて、問題が解決したかどうか確認してください。

関連する問題