Question

Je suis un débutant à la programmation iPhone, et je voudrais tracer une ligne à l'écran du téléphone dans le but de l'étude en utilisant Quartz et UIKit.

Comment puis-je commencer à dessiner?

Était-ce utile?

La solution

La première étape consiste à définir une sous-classe de UIView, pour créer un espace pour aspirer.

Si vous commencez avec une nouvelle application, la meilleure façon sera de commencer par le modèle « d'application de fenêtre ».

Ensuite, allez nouveau fichier et créer un « Objective-C de classe » par « Sous-classe de » réglé sur « UIView », et lui donner un nom, par exemple MyView.m.

Maintenant, ouvrez le groupe « Ressources » et double-cliquez sur « MainWindow.xib » pour l'ouvrir dans Interface Builder. De là, vous devriez voir une fenêtre nommée « Fenêtre ». Hit Cmd + Maj + L pour afficher la bibliothèque, et faites glisser un composant « View » sur la fenêtre, et placez-le afin que vous puissiez voir tout cela. Avec votre nouvelle vue sélectionnée, appuyez sur Cmd + 4 pour faire apparaître l'identité et l'inspecteur sous « classe Identity », cliquez sur le menu déroulant et choisissez MyView.

Ensuite, vous devez mettre en œuvre la méthode drawRect: dans MyView.m, voici quelques exemples de code qui dessine une ligne:

- (void)drawRect:(CGRect)rect {
    CGContextRef c = UIGraphicsGetCurrentContext();

    CGFloat red[4] = {1.0f, 0.0f, 0.0f, 1.0f};
    CGContextSetStrokeColor(c, red);
    CGContextBeginPath(c);
    CGContextMoveToPoint(c, 5.0f, 5.0f);
    CGContextAddLineToPoint(c, 50.0f, 50.0f);
    CGContextStrokePath(c);
}

Enregistrer tout et cliquez sur "Build and Run", vous devriez voir une courte ligne rouge sur l'iPhone.

Pour plus d'informations sur Core Graphics, consultez la documentation Apple. Je l'ai aussi trouvé utile de rechercher des fonctions commençant par CGContext dans la visionneuse de documentation Xcode et naviguer à travers les -. La plupart des fonctions de base graphiques vous retrouvez à l'aide commencer par le terme « CGContext »

Autres conseils

Vous pouvez aussi tracer une ligne à l'aide UIBezierPath. Ce qui suit va tracer une ligne horizontale à la verticale centrée:

- (void)drawRect:(CGRect)rect {
    CGFloat rectHeight = CGRectGetHeight(rect);
    CGFloat rectWidth = CGRectGetWidth(rect);

    UIBezierPath *line = [UIBezierPath bezierPath];
    [line moveToPoint:CGPointMake(0, rectHeight / 2)];
    [line addLineToPoint:CGPointMake(rectWidth, rectHeight / 2)];

    [[UIColor lightGrayColor] setStroke];
    [line stroke];
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top