Почему мои линии становятся все толще и толще? - PullRequest
2 голосов
/ 21 апреля 2010

Я пытаюсь нарисовать несколько линий разными цветами.

Этот код пытается нарисовать два прямоугольника с тонкими линиями 1px.Однако второй прямоугольник рисуется линиями шириной 2 пикселя, а первый - шириной 1 пикселя.

Ответы [ 2 ]

2 голосов
/ 21 апреля 2010

Если память используется, сглаживание включено по умолчанию, что может привести к тому, что рисунок будет затронут больше пикселей, чем вы предполагаете.Выключите сглаживание для CGContextRef и посмотрите, поможет ли это.

iOS:

CGContextRef context = UIGraphicsGetCurrentContext();
[context setShouldAntialias:NO];

Mac:

CGContextRef context = [NSGraphicsContext currentContext];
[context setShouldAntialias:NO];
1 голос
/ 23 апреля 2010

Первый выглядит как толщиной в один пиксель, потому что вы нарисовали его по периметру грязного прямоугольника, который UIView обрезал для вас, делая его внутренним штрихом.Но на самом деле оба прямоугольника имеют одну и ту же проблему .

По другому вопросу я написал полное описание реальной проблемы и реальных решений .Отключение АА будет достаточно для прямых линий, но вы его возненавидите, как только начнете рисовать, поворачивая или рисуя диагональ.

...