UIBezierPath обводит линию шириной 1 пиксель и заполняет прямоугольник шириной 1 пиксель — разные результаты.

Вот простой рисунок

    

- (void)drawRect:(CGRect)rect
{
    //vertical line with 1 px stroking
    UIBezierPath *vertLine = [[UIBezierPath alloc] init];
    [vertLine moveToPoint:CGPointMake(20.0, 10.0)];
    [vertLine addLineToPoint:CGPointMake(20.0, 400.0)];
    vertLine.lineWidth = 1.0;
    [[UIColor blackColor] setStroke];
    [vertLine stroke];

    //vertical rectangle 1px width 
    UIBezierPath *vertRect= [UIBezierPath bezierPathWithRect:CGRectMake(40.0, 10.0, 1.0, 390.0)];
    [[UIColor blackColor] setFill];
    [vertRect fill];

}

На 3GS без сетчатки и симуляторе первая линия размыта и выглядит шире 1 пикселя, но вторая линия четкая.

К сожалению, у меня нет ни iPhone 4, ни нового iPad для тестирования, но на симуляторе сетчатки обе строки выглядят одинаково.

Вопрос: Является ли прямоугольник вместо обводки единственным способом получить одинаковый результат для устройств с сетчаткой и без сетчатки?

23
задан Michael 24 June 2012 в 10:05
поделиться