0

これは、同じ関数、同じ幅、同じ色でUITableViewCellに描画された2本の線の画像です。 ここに画像の説明を入力してください

ご覧のとおり、一番下の線は他の線よりもかなり太いです。

描画に使用しているコード:

    [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 に答える