我試圖在視網膜@ 2x顯示器上創建3像素寬度的線。簡單的想法是創建一個1.5寬度線:在視網膜@ 2x顯示器上創建3像素寬度的UIBezierPath
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(所以retina @ 2x),當我使用帶有預定義系統按鈕UIBarButtonSystemItemAdd的UIBarButtonItem時,交叉的兩條路徑在我的屏幕上寬度爲3像素。
我的錯誤,路徑應該是在圖像的中間。而這仍然沒有改變任何東西。如果我使用1.0的路徑寬度,它將在屏幕上顯示爲2像素。如果我使用2.0的路徑寬度,它將在屏幕上顯示爲4個像素。所以1.5的路徑應該在屏幕上顯示3個像素...... – user3048615 2014-11-08 09:08:17
現在你的路徑在像素之間開始和停止,而你需要將你的路徑對準到te像素的中心。 – 2014-11-09 10:15:22