Quelle est la meilleure façon de dessiner cette ellipse dans une application iPhone?
-
22-08-2019 - |
Question
Je voudrais avoir une ellipse similaire à l'application Mail dans mon application iPhone. Une capture d'écran juste pour la référence est ici: http: // dl-client. getdropbox.com/u/57676/screenshots/ellipse.png
En fin de compte, je voudrais l'ellipse avec une valeur numérique centrée sur elle. Est-il préférable d'utiliser un UIImage pour cette tâche? Peut-être moins de frais généraux pour dessiner avec quartz? Si elle est faite avec Quartz, quelqu'un peut-il afficher une solution pour le dessiner?
La solution
Ah, un rectangle arrondi. Ce n'est pas trop difficile à tirer. Vous pouvez utiliser des chemins de Bézier pour obtenir ce que vous voulez. Le code ressemble à ceci:
CGRect rect;
CGFloat minX = CGRectGetMinX(rect), minY = CGFloatGetMinY(rect), maxX = CGFloatGetMaxX(rect), maxY = CGRectGetMaxY(rect);
CGFloat radius = 3.0; // Adjust as you like
CGContextBeginPath(context);
CGContextMoveToPoint(context, (minX + maxX) / 2.0, minY);
CGContextAddArcToPoint(context, minX, minY, minX, maxY, radius);
CGContextAddArcToPoint(context, minX, maxY, maxX, maxY, radius);
CGContextAddArcToPoint(context, maxX, maxY, maxX, minY, radius);
CGContextAddArcToPoint(context, maxX, minY, minX, minY, radius);
CGContextClosePath(context);
Maintenant que vous avez un chemin sur votre contexte graphique, vous pouvez dessiner ou décrire à l'aide des fonctions de CGContextDrawPath
et CGContextFillPath
.