我有一项任务是在UIView单元格之间绘制一个高度为2px的分隔线。顶部1px高线应该有颜色#F1F1F1,底部1px高线应该有颜色#DDDDDD 结果,在带有Retina显示屏的iPhone模拟器上,这两条线条清晰可见不同的颜色(#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上一切正常,对于iPad - 线条都是扭曲的。
有关导致此问题的原因和解决方法的任何想法?
答案 0 :(得分:3)
一个想法:在整数坐标处绘制的1像素宽线将被模糊,因为线的一半将位于像素边界的每一侧。尝试在line_y
坐标上添加0.5,看看它是否能解决您的问题。