我在设置为 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% 灰色)
这里发生了什么?
最佳答案
对于 UIKit,您不指定像素,而是指定点。然后点会自动映射到像素。您的 1 点宽度线似乎映射到两个视网膜像素。
关于ios6 - 如何绘制一像素宽的 UIBezierPath?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13197634/