0

这是在具有相同功能、相同宽度和颜色的 UITableViewCell 中绘制的两条线的图片 在此处输入图像描述

如您所见,底线比另一条线厚很多。

我用于绘图的代码:

    [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);
     }
4

1 回答 1

-1

问题在于当单元格被重用时,backgroundView 被拉伸以适应单元格的内容。当单元格较大时,像素会被拉伸。这解决了将contentMode属性设置为UIViewContentModeRedraw

于 2012-11-24T07:59:02.080 回答