【发布时间】:2011-07-05 12:20:34
【问题描述】:
我的任务是在 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 的子类)。我尝试更改参数“不透明”和“clearsContextBeforeDrawing”。结果相同 - 在 iPhone Retina 上一切正常,对于 iPad - 线条失真。
关于导致此问题的原因以及如何解决此问题的任何想法?
【问题讨论】:
标签: objective-c ios ipad line cgcontext