В приведенном ниже коде показано следующее. Можно заметить, что левая боковая линия имеет тонкую линию по сравнению с правой. Другие наблюдения Квадратная кривая не такая резкая. Как я могу заставить его выглядеть лучше?Коррекция чертежа CoreGraphics
- (void)drawRect:(CGRect)rect
{
CGContextRef contextRef=UIGraphicsGetCurrentContext();
[self drawBatteryEdges:contextRef withFinalBorderRect:rect];
}
-(void) drawBatteryEdges:(CGContextRef) contectRef withFinalBorderRect:(CGRect) batteryRect{
CGFloat topOffset=20.0f;
CGFloat bottomOffset=20.0f;
CGFloat curveOffset=4f;
CGMutablePathRef path=CGPathCreateMutable();
CGPathMoveToPoint(path, NULL, 0, topOffset);
CGPathAddQuadCurveToPoint(path, NULL, batteryRect.size.width/2.0, topOffset-(curveOffset), batteryRect.size.width, topOffset);
CGPathAddLineToPoint(path, NULL, batteryRect.size.width, batteryRect.size.height-bottomOffset);
CGPathAddQuadCurveToPoint(path, NULL,
batteryRect.size.width/2.0, (CGPathGetCurrentPoint(path).y)+(curveOffset),
0, (CGPathGetCurrentPoint(path).y));
CGPathCloseSubpath(path);
CGContextAddPath(contectRef, path);
CGContextDrawPath(contectRef, kCGPathStroke);
}
Он рисует следующее.
Вы также можете использовать 'CGPathCreateCopyByTransformingPath (путь, преобразование)' перевести полный путь (0.5, 0.5), если вы обнаружите, что легче работать с –
Да, это, безусловно, проще, чем добавление +0.5 везде. – andyPaul