2009-05-13 9 views
43

Soy un principiante en la programación de iPhone y me gustaría dibujar una línea en la pantalla del teléfono con el fin de estudiar usando Quartz y UIKit.¿Cómo hago un trazo en el iPhone?

¿Cómo comienzo a dibujar?

Respuesta

147

El primer paso es definir una subclase de UIView, para crear un espacio para dibujar en.

Si vas a empezar con una nueva aplicación, la forma más fácil será comenzar con la "basadas en la ventana- aplicación "plantilla.

Luego vaya a Archivo nuevo y cree una "Clase Objective-C" con "Subclase de" establecido en "UIView", y asígnele un nombre, digamos MyView.m.

Ahora abra el grupo "Recursos" y haga doble clic en "MainWindow.xib" para abrirlo en Interface Builder. Desde aquí, debería ver una ventana llamada "Ventana". Pulsa Cmd + Mayús + L para abrir la Biblioteca, y arrastra un componente "Ver" en tu ventana, y colócalo para que puedas verlo todo. Con su nueva Vista seleccionada, presione Cmd + 4 para abrir el Inspector de identidad y en "Identidad de clase", haga clic en el menú desplegable y seleccione MyView.

Después, usted necesita para implementar el drawRect: método en el MyView.m, aquí hay un código de ejemplo que dibuja una línea:

- (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); 
} 

Guardar todo y haga clic en "Build and Run", ahora debería ver una línea roja corta en el iPhone.

Para obtener más información acerca de Core Graphics, busque la documentación de Apple. También me pareció útil buscar funciones que comenzaran con CGContext en el visor de documentación de Xcode, y navegar por ellas: la mayoría de las funciones de Core Graphics que terminará usando comenzarán con el término "CGContext".

+0

Gracias Tobias .... Me ayuda .... –

+56

1 por responder con código en lugar de RTFM. – willc2

+0

+1 me ayudó :) –

4

También puede trazar una línea usando UIBezierPath. A continuación se traza una línea vertical centrada en horizontal:

- (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]; 
} 
Cuestiones relacionadas