12
votes

Dessiner cercle creux dans iPhone

J'ai besoin de dessiner l'image suivante Entrez la description de l'image ici

La partie grise est ce que je veux dessiner sur une autre image, quel est le code que j'ai besoin d'utiliser à l'aide de méthodes CGContext, j'ai essayé d'utiliser le CGContextadDArc, mais j'ai échoué car lorsque je remplisse la course, le centre creux est également rempli de la texture grise. .

Toute aide appréciée.

Info: J'ai l'image bleue complète, j'ai besoin d'ajouter le demi-cercle au-dessus de l'image bleue

merci


1 commentaires

Comment feriez-vous un travail en essayant de créer une honte de beignet à l'aide de CGContext, puis d'ajouter cela comme dans un calque ou une formelle ... Désolé pour cela, mais je ne me retrouve pas la tête à ce moment-là, alors au moment Il suffit de tirer vide


3 Réponses :


25
votes

regarder Remplissage d'un chemin dans la documentation graphique principale. Fondamentalement, ce que vous faites est d'ajouter deux arcs à votre chemin (l'extérieur et de l'intérieur), puis utilisez des règles de base graphiques à votre avantage. Le code ressemblerait à quelque chose comme ceci: xxx


0 commentaires

10
votes

Travailler plus loin sur ce que OLE Begemann référé dans sa réponse et une modification, j'ai pu atteindre l'exigence . XXX

Donc, au lieu de 2 arcs, j'ai utilisé un seul et le caressa avec une largeur supérieure.


0 commentaires

4
votes

Ceci est tangentiel mais type de pertinence. Voici mon code de dessin rapide pour un beignet (ou un cercle creux). xxx


1 commentaires

Joli! Mais pour l'affaire Général où n'est pas (0,0), vous devriez plutôt utiliser: Soit innerdonutrect = cgrecturect (ro.origin.x + innerdonutoffset, ro.origin.y + innerdonutoffset, innerdonutside, innerdonutied). Sauf pour cela, votre code a parfaitement fonctionné pour moi.