objective-c - iPad 上画线的奇怪问题

标签 objective-c ios ipad line cgcontext

我的任务是在 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);

对于 View 对象,用作画线的容器(这是 UITableViewCell 的子类)。我尝试更改参数“opaque”和“clearsContextBeforeDrawing”。同样的结果 - 在 iPhone Retina 上一切正常,对于 iPad - 线条失真。

关于导致此问题的原因以及如何解决它的任何想法?

最佳答案

一个想法:在整数坐标处绘制的 1 像素宽的线将变得模糊,因为线的一半将位于像素边界的每一侧。尝试将 0.5 添加到您的 line_y 坐标,看看是否能解决您的问题。

关于objective-c - iPad 上画线的奇怪问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6582540/

相关文章:

Objective-C/ cocoa : Do I have a memory leak here?

iphone - 触摸时旋转 View

ios - cocoa touch 类和普通 swift 类有什么区别?

ios - 开发 iPad 应用程序

iphone - iPad 可以知道您的 iPhone 何时在附近吗?

iphone - 静态的 Objective-C 修饰符?

ios - 如何使 uitextfield 只接受数字和逗号

ios - 如何在iOS中制作这种效果,模糊效果使其向下方倾斜

javascript - 如何使此代码适用于 iPad 等触摸屏设备?

ios - swrrevealviewcontrtoller 在侧面菜单打开/关闭时更改切换按钮图像?