来自CGContextAddArc的角落太暗了

时间:2010-07-12 11:40:59

标签: iphone objective-c uikit core-graphics

我的代码没什么问题。我想在uitableview-section中添加一个页脚,但这不是我的问题。

我的问题是我希望在页脚视图上有圆角,但不是在所有角落,只有底部的两个角。但角落太暗了,我不知道为什么......

继承我的代码:

- (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 :(得分:0)

你可以试试几件事。一种是改变角落的半径。另一种方法是添加一些代码以确保在矩形内部绘制线条,而不是将线条居中放在边缘上。要做到这一点,你必须将矩形插入线宽的一半,或者在这种情况下为0.5像素。