2012-02-09 641 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