【发布时间】:2012-04-23 23:49:00
【问题描述】:
我找到了关于如何使用 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 度。但两者都一无所获。
有什么想法吗?谢谢。
【问题讨论】: