Débutant iphone question: en dessinant un rectangle. Ce que je fais mal?
À essayer de comprendre ce que je fais mal ici. Avoir essayé plusieurs choses, mais je ne vois jamais insaisissable rectangle sur l'écran. Maintenant, c'est tout ce que je veux faire-tracez un rectangle sur l'écran.
Je suis invalide "contexte" sur tout, mais la CGContextSetRGBFillColor(). Arriver le contexte après qui semble un peu de mal pour moi, mais je ne suis pas à la maison en regardant les exemples que j'ai été en utilisant la nuit dernière.
Ai-je foiré quelque chose d'autre? Je voudrais vraiment obtenir au moins autant fini pour ce soir...
- (id)initWithCoder:(NSCoder *)coder
{
CGRect myRect;
CGPoint myPoint;
CGSize mySize;
CGContextRef context;
if((self = [super initWithCoder:coder])) {
NSLog(@"1");
currentColor = [UIColor redColor];
myPoint.x = (CGFloat)100;
myPoint.y = (CGFloat)100;
mySize.width = (CGFloat)50;
mySize.height = (CGFloat)50;
NSLog(@"2");
//UIGraphicsPushContext (context);
NSLog(@"3");
CGContextSetRGBFillColor(context, 1.0, 0.0, 0.0, 1.0);
context = UIGraphicsGetCurrentContext();
CGContextSetFillColorWithColor(context, currentColor.CGColor);
CGContextAddRect(context, myRect);
CGContextFillRect(context, myRect);
}
return self;
}
Merci,
Sean.
OriginalL'auteur | 2009-06-09
Vous devez vous connecter pour publier un commentaire.
De départ avec une Vue à base de modèle, créez un projet nommé Tiroir. Ajouter une UIView classe à votre projet. Nom il SquareView (.h et .m).
Double-cliquez sur DrawerViewController.xib pour l'ouvrir dans Interface Builder. Changer la vue générique là pour SquareView dans l'Identité de l'Inspecteur (commande-4) à l'aide de la Classe menu contextuel. Enregistrer et revenir à Xcode.
Mettez ce code dans les drawRect: méthode de votre SquareView.m fichier à dessiner un grand, tordu, vide rectangle jaune et un petit, vert, transparent carré:
Vous n'avez pas à appeler cette méthode pour l'élaboration d'arriver. Votre point de vue contrôleur de se dire à la vue de dessiner lui-même au moins une fois lors du lancement du programme et la PLUME fichiers sont activés.
OriginalL'auteur willc2
Vous n'êtes pas censé mettre CG code dans initWithCoder. Ce message ne doit être utilisé pour l'INITIALISATION but.
Mettre votre code de dessin dans:
Si vous êtes sous-classement d'une UIView...
Oui. C'est le droit.
Ok, donc je ne devrais pas utiliser initWithCoder() pour dessiner des trucs. Mais est-ce réellement répondre à ma question? Est de déplacer le centre de gravité de code d'une fonction qui va faire toute la différence si oui ou non le rectangle pénètre? Et comme pour les utiliser ou non les drawRect, vous avez maintenant réussi à me confondre. Dites-vous que je devrais mettre tous les paramètres de mon rectangle en drawRect? Cela ne semble pas juste, soit-si je tiens à attirer plus d'un rectangle? Si il y a un exemple simple d'application qui dessine un rectangle ou un cercle, ou quelque chose, j'aimerais prendre un coup d'oeil. Sean.
Oui, le déplacement de votre code pour drawRect serait certainement causer le rectangle à dessiner. Je pense que vous devriez suivre quelques tutoriaux sur l'iPhone DEV depuis c'est plutôt un truc de base. Regardez les exemples qui viennent avec le kit de développement SDK.
La méthode drawRect est le seul endroit où vous êtes assuré de disposer d'un cadre que vous pouvez dessiner dans. Et seulement si vous n'avez pas à appeler directement drawRect vous-même.
OriginalL'auteur Pablo Santa Cruz