2010-07-12 9 views
1

J'ai un petit problème avec mon code. Je veux ajouter un pied de page à une section uitableview, mais ce n'est pas mon problème. Mon problème est que je veux avoir des coins arrondis sur ma vue de bas de page, mais pas sur tous les coins, juste les deux sur le fond. Mais les coins sont tout simplement trop sombre et je ne sais pas pourquoi ...Les coins de CGContextAddArc sont trop sombres

Heres mon code:

- (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); 
} 

Voici une photo de mon problème: http://img195.imageshack.us/img195/9834/bildkw.png

Pouvez-vous voir le plus sombre coins? Comment puis-je résoudre ce problème?

Merci

Sebastian

Répondre

0

Il y a une couple de choses que vous pouvez essayer. L'un est de changer le rayon des coins. Une autre consiste à ajouter du code pour s'assurer que vous dessinez des lignes à l'intérieur du rectangle et au lieu de centrer les lignes sur les bords. Pour ce faire, vous devez insérer le rect de la moitié de la largeur de la ligne, ou 0,5 pixel dans ce cas.

+0

L'insertion du rectangle de 0,5 pixel a résolu mon problème. Je vous remercie! –