使用设置为相同宽度的核心图形绘制的线条在绘制时的大小有时会有所不同

时间:2012-11-24 07:50:28

标签: objective-c ios drawing core-graphics

这是在UITableViewCell中绘制的两条线的图片,具有相同的功能,相同的宽度和颜色 enter image description here

正如您所看到的,底线比另一条线厚很多。

我用于绘图的代码:

    [CSDrawing drawLineWithColor:[UIColor blackColor] width:1.0 yPosition:1.0 rect:rect];
    [CSDrawing drawLineWithColor:[UIColor blackColor] width:1.0 yPosition:CGRectGetMaxY(rect) - 3.0 rect:rect]; // draw a line on top and bottom

    +(void)drawLineWithColor:(UIColor *)color width:(CGFloat)width yPosition:(CGFloat)yPosition rect:(CGRect)rect {

          CGContextRef context = UIGraphicsGetCurrentContext();
          CGContextSaveGState(context);

          CGContextMoveToPoint(context, 0.0, yPosition);
          CGContextAddLineToPoint(context, CGRectGetMaxX(rect), yPosition);

          CGContextSetStrokeColorWithColor(context, color.CGColor);
          CGContextSetLineWidth(context, width);

          CGContextStrokePath(context);

          CGContextRestoreGState(context);
     }

1 个答案:

答案 0 :(得分:-1)

问题在于,当重复使用单元格时,backgroundView被拉伸以适应单元格的内容。当细胞更大时,像素被拉伸。这可以通过将contentMode属性设置为UIViewContentModeRedraw

来解决