【问题标题】:Corners from CGContextAddArc are too darkCGContextAddArc 的角落太暗
【发布时间】:2010-07-12 11:40:59
【问题描述】:

我的代码没什么问题。我想为 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

你能看到较暗的角落吗?我该如何解决?

谢谢

塞巴斯蒂安

【问题讨论】:

    标签: iphone objective-c uikit core-graphics


    【解决方案1】:

    您可以尝试几件事。一是改变拐角的半径。另一个是添加一些代码以确保您在矩形内部绘制线条,而不是在边缘上居中。为此,您必须将矩形插入线宽的一半,在这种情况下为 0.5 个像素。

    【讨论】:

    • 将矩形插入 0.5 像素解决了我的问题。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2021-09-02
    • 2011-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-09
    • 1970-01-01
    相关资源
    最近更新 更多