2 votes

CGContextStrokeRectWithWidth avec arrondi interne ?

Je dessine un rectangle arrondi sur iOS.

Ce rectangle a un fond d'image que je découpe avec un chemin de bézier et je dessine ensuite un trait d'une largeur de deux pixels à l'intérieur.

Le problème est que le trait présente des arêtes vives à l'intérieur, alors qu'il semble suivre la trajectoire arrondie du rectangle.

Voici une capture d'écran où j'ai augmenté la couleur blanche pour montrer le problème auquel je suis confronté.

enter image description here

Voici mon code :

CGContextRef context = UIGraphicsGetCurrentContext();
CGPathRef strokeRect = [UIBezierPath bezierPathWithRoundedRect:rect cornerRadius:2].CGPath;
CGContextAddPath(context, strokeRect);
CGContextClip(context);

// draw background
[[UIImage imageNamed:@"background.png"] drawInRect:rect];

// draw stroke
CGContextSetRGBStrokeColor(context, 1.0, 1.0, 1.0, 0.1);
CGContextStrokeRectWithWidth(context, rect, 2);

0voto

Ash Furrow Points 6157

Je pense que ce que vous allez devoir faire est de couper le contexte à l'intérieur avec le rayon du coin et de remplir le contexte avec 10% de blanc.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X