我找到了关于如何使用 NSString drawInRect 绘制旋转文本的答案:,但我不确定它是如何工作的,因为它只对我有用:https ://discussions.apple.com/thread/1779814?start=0&tstart =0
我的代码如下所示:
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];
因此,当我使用它时,我看到在 x 轴下方 45 度处绘制文本。我想沿着我的线性渐变垂直绘制文本。所以我想我可以通过使用 M_PI/2 90 度来做到这一点。我没有看到我的文字。我尝试了不同的旋转变换,只有一些看起来像 M_PI/4 和 M_PI/8。我认为如果我使用 -M_PI/4 它将使文本在 x 轴上方 45 度,而 M_PI/2 将在 x 轴下方 90 度。但两者都一无所获。
有什么想法吗?谢谢。