2011-12-03 46 views
0

我已經使用Interface Builder創建了UITextField。在viewDidLoad,我旋轉文本字段以匹配我們需要的景觀視野:iOS:文本不會顯示在旋轉的UITextField內

name.transform = CGAffineTransformMakeRotation(-(M_PI/2)); 

不幸的是,這並不與它帶來的文本。文本位於文本框之外,位於背景之後,如下所示。

Note the where the suggestion box is.

基於在這裏StackOverflow的其他問題,我曾嘗試:

name.textAlignment = UITextAlignmentLeft; 
name.textAlignment = UITextAlignmentRight; 

與本附加功能:

- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation{ 
    name.textAlignment = UITextAlignmentLeft; 
    name.textAlignment = UITextAlignmentRight; 
} 

既不解決方案工作。

----- ----- UPDATE

我能只是定位筆尖的景觀,而不是畫像,這解決了這個問題。但是,這看起來像一個錯誤。我假設一個旋轉的UITextField應該帶上它的文本。

+0

你爲什麼要這樣做?這是一種默認行爲,只需在'willRotateToInterfaceOrientation:duration:'方法中爲新方向提供新框架即可。 – beryllium

+0

@beryllium我不確定你的意思是「框架」。除此之外,我只是盡我所能把文本放回盒子裏,而那些「解決方案」是我能通過Google/StackOverflow找到的最接近的東西。 – ray

回答

2

爲什麼你要手動旋轉文本字段?只要讓你的UIViewController執行其正常的旋轉行爲(它轉換視圖控制器的主視圖),所有的子視圖將可用於橫向。

+0

這真的是正確的*問題*。最初,當我們開始使用IB構建視圖時,將筆尖定位爲「景觀」使我們在**肖像模式視圖內留下景觀**,因此視圖的一半將掛在屏幕上。我們通過將其定位爲肖像並旋轉所有對象來解決這個問題。我們應該進一步調查,因爲在看到您的答案後5分鐘的Google搜索讓我在'shouldAutorotateToInterfaceOrientation'中設置適當的值。謝謝。 – ray

+0

不客氣。老實說,我不知道爲什麼設置這個轉換會導致文本字段中斷,但我敢打賭,如果您轉換它們,您會看到很多內置子類會中斷。 (因爲他們的框架不再有意義。) –