Comment dessiner un rectangle?
Je veux dessiner un rectangle plein dans mon viewContoller de vue.
J'ai écrit de code ci-dessous dans le viewDidLoad. Mais il n'y a pas de changement.
Quel est le problème?
CGRect rectangle = CGRectMake(0, 100, 320, 100);
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetRGBFillColor(context, 1.0, 0.0, 0.0, 1.0);
CGContextSetRGBStrokeColor(context, 1.0, 0.0, 0.0, 1.0);
CGContextFillRect(context, rectangle);
veuillez noter que, pour ce très vieille question, je les ai mis dans la réponse moderne, 2018
OriginalL'auteur charly | 2011-11-19
Vous devez vous connecter pour publier un commentaire.
Vous ne pouvez pas le faire dans un viewController.
Vous avez besoin de prolonger votre et y ajouter le code sous la rubrique "drawRect:"
cela va changer le dessin de la logique de votre point de vue.
Bon, je suppose que la meilleure solution est d'abord de vérifier que la zone qui doit être re-dessinée est une partie du rectangle, et ensuite seulement de le faire.
Qu'entendez-vous étendre?
Créer une nouvelle classe pour votre vue de l'extension de UIView
Pas besoin d'appeler les super-ici; comme il est dit dans l'Apple UIView de référence de classe: "Si vous sous-classe UIView directement, votre mise en œuvre de cette méthode n'a pas besoin d'appeler super."
OriginalL'auteur Guy Ephraim
Vous ne pouvez pas vous rendre directement dans le viewDidLoad; c'est le point de vue eux-mêmes qui aurait pour exécuter ce dans leur méthode drawRect.
La façon la plus simple pour "dessiner" un rectangle est de placer une UIView avec une couleur d'arrière-plan & border dans votre point de vue. (Vous pouvez définir la frontière via le point de vue de l'CALayer méthodes. c'est à dire
myView.layer.borderColor = [[UIColor redColor] CGColor];
)OriginalL'auteur Jesse Rusak
Juste pour plus de clarté:
Si Vous avez besoin de dessiner un rectangle qui a le même fond et la couleur de la bordure, puis Vous pouvez remplacer:
avec:
OriginalL'auteur Guntis Treulands
moderne 2018 solution..
.
OriginalL'auteur Fattie