Ho trovato questa risposta su come disegnare testo ruotato con NSString drawInRect :, ma non sono sicuro di come funziona in quanto unico tipo di funziona per me: https://discussions.apple.com/thread/1779814?start=0&tstart=0Disegno ruotata di testo con NSString drawInRect
miei sguardi di codice Mi piace:
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];
Così quando lo uso, vedo il testo disegnato a 45 gradi sotto l'asse x. Voglio disegnare il testo verticalmente lungo il mio lineareartern. Quindi ho pensato di poterlo fare usando M_PI/2 per 90 gradi. Non vedo il mio testo però. Ho provato diverse trasformazioni per la rotazione e solo alcune sembrano funzionare come M_PI/4 e M_PI/8. Penserei che se avessi usato -M_PI/4 avrebbe il testo 45 gradi sopra l'asse x e M_PI/2 sarebbe 90 gradi sotto l'asse x. Ma entrambi si presentano con niente.
Qualche idea? Grazie.
Grazie mille. ma se cambio il -M_PI_2 in M_PI_2. questa stringa scomparirà. PERCHÉ? – Jacky
Ho capito, se cambia -M_PI_2 a M_PI_2, è anche necessario cambiare CGContextTranslateCTM (context, -rect.size.height, 0); a CGContextTranslateCTM (context, 0, -rect.size.height); – Jacky