При рисовании прямоугольников в UIView для ios у меня остается одна и та же проблема: поля прямоугольника смешивают свой цвет с фоном. Я попробовал несколько методов рисования прямоугольника с одинаковыми результатами - используя путь Безье, рисование построчно, рисование полей и заполнение внутренней части прямоугольника.
Сами кадры вида всегда правильно рисуются. Я даже рассматривал возможность использования представлений всякий раз, когда мне нужен прямоугольник, но это не похоже на правильный способ делать вещи специально, потому что мне нужно рисовать многие из них.
Вот пример моей проблемы. Для сравнения я рисую прямоугольный зеленый вид с такими же размерами:
CGRect horizontalBar = CGRectMake(2, 2, 10, 6);
UIView* horizontalBarSubView = [[UIView alloc] initWithFrame:horizontalBar];
horizontalBarSubView.backgroundColor = [UIColor greenColor];
[self addSubview:horizontalBarSubView];
[horizontalBarSubView release];
А для самого прямоугольника:
CGRect horizontalBar = CGRectMake(2, 20, 10, 6);
UIBezierPath* horizontalBarPath = [UIBezierPath bezierPathWithRect:horizontalBar];
[[UIColor greenColor] set];
[horizontalBarPath fill];
Это дает следующий результат (10-кратное увеличение):
Что вызывает смешение цветов?
Как мне избежать этого?