2

我在设置为 iPhone(Retina 4 英寸)的模拟器中运行此代码

-(void)drawRect:(CGRect)rect {
    [[UIColor whiteColor]set];
    UIRectFill(self.bounds);
    UIBezierPath *vertLine = [UIBezierPath bezierPath];
    [vertLine moveToPoint:CGPointMake(20.5, 10.0)];
    [vertLine addLineToPoint:CGPointMake(20.5, 20.0)];
    vertLine.lineWidth = 1.0;
    [[UIColor blackColor]set];
    [vertLine stroke];
}

我希望有一条一像素的垂直线,但这条线宽两像素,并且是纯黑色。纯黑色似乎表明这不是由于像素网格上的线对齐问题(在这种情况下它将是 50% 灰色)

这里发生了什么事 ?

4

1 回答 1

3

对于 UIKit,您不指定像素,而是指定点。然后点会自动映射到像素。您的 1-point-width-line 似乎映射到两个视网膜像素。

请参阅http://developer.apple.com/library/ios/#documentation/2DDrawing/Conceptual/DrawingPrintingiOS/GraphicsDrawingOverview/GraphicsDrawingOverview.html中的“点与像素”

于 2012-11-14T10:14:45.003 回答