Znalazłem odpowiedź na jak narysować tekst obrócony NSString drawInRect :, ale nie jestem pewien, jak to działa, ponieważ tylko rodzaj działa na mnie: https://discussions.apple.com/thread/1779814?start=0&tstart=0Drawing obrócony tekst z NSString drawInRect
mój kod wygląda jak:
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];
Więc kiedy to wykorzystać, widzę tekst ciągniętą 45 stopni poniżej osi x. Chcę narysować tekst pionowo wzdłuż mojego liniowego elementu. Pomyślałem, że mogę to zrobić, używając M_PI/2 dla 90 stopni. Nie widzę jednak mojego tekstu. Próbowałem różnych transformacji dla rotacji i tylko niektóre wydają się działać jak M_PI/4 i M_PI/8. Myślę, że gdybym użył -M_PI/4, miałby tekst 45 stopni powyżej osi x, a M_PI/2 byłby 90 stopni poniżej osi x. Ale obaj pojawiają się z niczym.
Jakieś myśli? dzięki.
Wielkie dzięki. ale jeśli zmienię -M_PI_2 na M_PI_2. ten ciąg zniknie. CZEMU? – Jacky
Mam to, jeśli zmienisz -M_PI_2 na M_PI_2, to również trzeba zmienić CGContextTranslateCTM (context, -rect.size.height, 0); do CGContextTranslateCTM (context, 0, -rect.size.height); – Jacky