2011-12-03 15 views
0

Interface BuilderでUITextFieldを作成しました。iOS:回転したUITextFieldの内部にテキストが表示されない

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

は残念ながら、これはそれでテキストをもたらすものではありません:viewDidLoadで、私たちは必要風景ビューに一致するようにテキストフィールドを回転させます。テキストは、以下に示すように、背景の背後にあるテキストフィールドの外側に位置します。

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が(View Controllerのメインビューを変換する)通常の回転動作を行い、すべてのサブビューをランドスケープで使用できるようにします。

+0

これは本当に正しい*質問*です。最初に、IBでビューを構築するときに、ペン先を "Landscape"に向けたとき、ポートレートモードのビュー内にLandscape **というビューが残っていたので、ビューの半分が画面からはみ出していました。私たちは、肖像画の向きを変えて、すべてのオブジェクトを回転させることで、その周りに取り組みました。あなたの答えを見てから5分のグーグルが 'shouldAutorotateToInterfaceOrientation'に適切な値を設定してくれたので、私たちはさらに調査すべきでした。ありがとう。 – ray

+0

ようこそ。正直なところ、その変換を設定するとテキストフィールドが壊れる原因はわかりませんが、変換しても組み込みのサブクラスが壊れることがあります。 (彼らのフレームはもはや意味がないので。) –

関連する問題