我正在尝试在视网膜@2x 显示器上创建一条 3 像素宽的线。简单的想法是创建一条 1.5 宽的线:
UIGraphicsBeginImageContextWithOptions(CGSizeMake(20, 20), NO, 0.0f);
CGContextRef aRef = UIGraphicsGetCurrentContext();
CGContextSetAllowsAntialiasing(aRef, NO);
CGContextSetShouldAntialias(aRef, NO);
UIBezierPath* bezierPath = UIBezierPath.bezierPath;
[bezierPath moveToPoint: CGPointMake(10, 0)];
[bezierPath addLineToPoint: CGPointMake(10, 10)];
bezierPath.lineWidth = 1.5;
[bezierPath stroke];
UIImage * myImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
但最后,我在屏幕上得到了 4 像素的线宽。
问题是,我使用的是 iPad 3(所以视网膜 @2x),当我使用带有预定义系统按钮 UIBarButtonSystemItemAdd 的 UIBarButtonItem 时,十字的两条路径在我的屏幕上是 3 像素宽度。