He encontrado esta respuesta sobre cómo dibujar texto girado con NSString drawInRect :, pero no estoy seguro de cómo funciona, ya que sólo tipo de funciona para mí: https://discussions.apple.com/thread/1779814?start=0&tstart=0Dibujo texto girado con NSString drawInRect
mi código de miradas como:
CGContextSaveGState(context);
CGContextDrawLinearGradient(context, gradient, CGPointMake(0, centY - halfWidth), CGPointMake(0, centY + halfWidth), 0);
// Add text
CGContextSetFillColorWithColor(context, [UIColor whiteColor].CGColor);
NSString *str = @"some test string";
CGAffineTransform transform1 = CGAffineTransformMakeRotation(M_PI/4);
CGContextConcatCTM(context, transform1);
CGContextTranslateCTM(context, 0, 0);
UIFont *font = [UIFont systemFontOfSize:16.0];
[str drawInRect:CGRectMake(0, 0, 200, 100) withFont:font lineBreakMode:UILineBreakModeWordWrap alignment:UIBaselineAdjustmentNone];
De modo que cuando uso esto, veo que el texto se dibuja 45 grados por debajo del eje x. Quiero dibujar el texto verticalmente a lo largo de mi gradiente lineal. Entonces pensé que podría hacer eso usando M_PI/2 por 90 grados. No obstante, no veo mi texto. He intentado diferentes transformaciones para la rotación, y solo algunas parecen funcionar como M_PI/4 y M_PI/8. Yo pensaría que si usara -M_PI/4 tendría el texto a 45 grados por encima del eje xy M_PI/2 estaría 90 grados por debajo del eje x. Pero ambos aparecen sin nada.
¿Alguna idea? Gracias.
Muchas gracias. pero si cambio el -M_PI_2 a M_PI_2. esta cadena desaparecerá ¿POR QUÉ? – Jacky
Lo tengo, si cambia -M_PI_2 a M_PI_2, también es necesario cambiar CGContextTranslateCTM (context, -rect.size.height, 0); a CGContextTranslateCTM (context, 0, -rect.size.height); – Jacky