2011-01-12 11 views
29

Me preguntaba cómo puedo crear trazo de texto para UILabel en iOS4? Necesito alguna sugerencia Quiero algo como esto:Crear trazo de texto para UILabel iphone

alt text

Editado:

UIFont *font = [UIFont fontWithName:@"Arial" size:222]; 
CGPoint point = CGPointMake(0,0); 

CGContextRef context = UIGraphicsGetCurrentContext(); 

CGContextSetRGBFillColor(context, 1.0, 1.0, 1.0, 0.7); 
CGContextSetRGBStrokeColor(context, 2, 2, 2, 1.0); 
CGContextSetTextDrawingMode(context, kCGTextFillStroke); 
CGContextSaveGState(context); 

// I change it to my outlet 
[label.text drawAtPoint:point withFont:font]; 

CGContextRestoreGState(context); 

Respuesta

21
UIFont *font = [UIFont fontWithName:@"Arial" size:14]; 
CGPoint point = CGPointMake(0,0); 

CGContextRef context = UIGraphicsGetCurrentContext(); 

CGContextSetRGBFillColor(context, 1.0, 1.0, 1.0, 0.7); 
CGContextSetRGBStrokeColor(context, 0.0, 0.0, 0.0, 1.0); 
CGContextSetTextDrawingMode(context, kCGTextFillStroke); 
CGContextSaveGState(context); 
[@"Label" drawAtPoint:point withFont:font]; 

CGContextRestoreGState(context); 

se puede ver aquí:

http://developer.apple.com/library/ios/#documentation/GraphicsImaging/Conceptual/drawingwithquartz2d/dq_text/dq_text.html

y en el código de ejemplo aquí: http://developer.apple.com/library/ios/#samplecode/QuartzDemo/Introduction/Intro.html%23//apple_ref/doc/uid/DTS40007531

+0

gracias pero nada ha cambiado! ... es @ "Etiqueta" mi outlet? lo siento soy un principiante en la programación IOS, puse mi código en viewDidLoad –

+0

¿puedes publicar tu código? – shannoga

+0

@ "Lable" es solo una Cadena, el texto que desea imprimir – FoJjen

0

Bueno, si desea dibujar un texto en una etiqueta con una fuente personalizada, como CGFontRef, no es del todo simple. Busqué en Google un poco y encontré una solución para usted que implica que debe heredar la clase UILabel y reescribir el método drawTextInRect para esto. Toda la información necesaria para usted es here.

1

tengo una solución limpia implementar UILabelStroke subclase:

@implementation UILabelStroked 
@synthesize strokeColor; 
- (void)drawTextInRect:(CGRect)rect { 

    UIColor *borderColor = self.strokeColor; 
    UIColor *fillColor = self.textColor; 
    CGContextRef context = UIGraphicsGetCurrentContext(); 

    CGContextSetLineWidth(context, 1.0f); 
    CGContextSetTextDrawingMode(context, kCGTextStroke); 
    self.textColor = borderColor; 
    [super drawTextInRect:rect]; 

    CGContextSetLineWidth(context, 0.0f); 
    CGContextSetTextDrawingMode(context, kCGTextFillStroke); 
    self.textColor = fillColor; 
    [super drawTextInRect:rect]; 
} 
@end