Углы от CGContextAddArc слишком темные - PullRequest
1 голос
/ 12 июля 2010

У меня небольшая проблема с моим кодом. Я хочу добавить нижний колонтитул в раздел uitableview, но это не моя проблема.

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

Вот мой код:

- (void)drawRect:(CGRect)rect {
    float radius = 10.0f;
    CGContextRef context = UIGraphicsGetCurrentContext();   

    CGFloat strokeColorArray[4] = {0.35f,0.35f,0.35f,1.0f}; 
    CGContextSetStrokeColor(context, strokeColorArray);
    CGContextSetRGBFillColor(context, 1.0, 1.0, 1.0, 1);
    CGContextSetLineWidth(context, 1.0);        

    CGContextBeginPath(context);

    CGContextMoveToPoint(context, CGRectGetMinX(rect), CGRectGetMinY(rect));
    CGContextAddLineToPoint(context, CGRectGetMaxX(rect), CGRectGetMinY(rect));
    CGContextAddArc(context, CGRectGetMaxX(rect) - radius, CGRectGetMaxY(rect) - radius, radius, 0, M_PI / 2, 0);
    CGContextAddArc(context, CGRectGetMinX(rect) + radius, CGRectGetMaxY(rect) - radius, radius, M_PI / 2, M_PI, 0);
    CGContextClosePath(context);

    CGContextFillPath(context); 


    CGContextMoveToPoint(context, CGRectGetMaxX(rect), CGRectGetMinY(rect));
    CGContextAddArc(context, CGRectGetMaxX(rect) - radius, CGRectGetMaxY(rect) - radius, radius, 0, M_PI / 2, 0);
    CGContextAddArc(context, CGRectGetMinX(rect) + radius, CGRectGetMaxY(rect) - radius, radius, M_PI / 2, M_PI, 0);
    CGContextAddLineToPoint(context, CGRectGetMinX(rect), CGRectGetMinY(rect));

    CGContextDrawPath(context, kCGPathStroke);
}

Вот картина моей проблемы: http://img195.imageshack.us/img195/9834/bildkw.png

Ты видишь более темные углы? Как я могу это исправить?

Спасибо

Себастьян

1 Ответ

0 голосов
/ 12 июля 2010

Есть пара вещей, которые вы можете попробовать.Одним из них является изменение радиуса углов.Другой - добавить некоторый код, чтобы убедиться, что вы рисуете линии внутри прямоугольника, а не центрируете линии по краям.Для этого вам нужно будет вставить прямоугольник на половину ширины линии или в этом случае на 0,5 пикселя.

...