2012-02-09 640 views
0

当我尝试旋转UILabel时,我遇到了一个有趣的UILabel问题。我以编程方式在代码中创建标签以处于视图的中心,并且当前正在设置它的值。我想要做的是让文本旋转并设置在屏幕的左侧,以便它与左边界对齐。如果我做textLabel.transform = CGAffineTransformMakeRotation(M_PI_2);那么文本旋转正确,但倒过来。但是,当我做textY.transform = CGAffineTransformMakeRotation(M_PI_4);时,文本看起来是旋转并显示在一个角度,而不是与边界齐平。我粘贴了下面的完整代码片段,并感谢任何建议。iOS UILabel旋转问题

CGRect labelFrame = CGRectMake(0, self.view.frame.size.height/2, 40, 40); 
UILabel *text = [[UILabel alloc] initWithFrame:labelFrame]; 
text.transform = CGAffineTransformMakeRotation(M_PI_2); 
text.backgroundColor = [UIColor clearColor]; 
text.text = @"Home"; 
[self.view addSubview:text]; 
[self.view bringSubviewToFront:text]; 
+0

你说倒挂,你希望文本读取从底部到顶部还是从顶部到底部? (我假设你想要文本旋转上下) – nycynik 2012-02-09 15:02:05

回答

3

如果你想要的文字,从底部读顶部

E 
M 
O 
H 

你可以这样做是这样的:

text.transform = CGAffineTransformMakeRotation(M_PI_2*3); 
+0

这正是我正在寻找的。我有这个问题,但是为什么乘以3?为什么我不认为M_PI_4会是下一个合乎逻辑的步骤? – Seb 2012-02-09 15:08:40

+0

M_PI_4是pie/4,M_PI_2是pie/2。在整个圆周上是2PI,所以M_PI_2的一步是1/4,而M_PI_2的三步是3/4,另一侧。 – nycynik 2012-02-09 15:13:03

+0

是否每个字符('H','O','M','E')都旋转? – hzxu 2012-05-18 04:02:24