2012-06-26 24 views
8

ビューにUITextViewがあり、ビューコントローラがモーダルスタイルで表示されています。私のviewDidLoadメソッドでは、このUITextViewのテキストを設定しますが、テキストは表示されません。下の画像はエラーを示しています。 テキストの色は黒ですです。UITextViewのテキストが正しく表示されず、表示されないが占有されているスペース

奇妙なことは、テキストビューでタップしたり、キーボードの[戻る]をタップすると、テキストが表示されるようになります。私が気付いたのは、このエラーだけです。は、設定したテキストがUITextViewフレームの幅よりも長く、最後の単語が長いURLのように壊れていない場合に発生します。

私はこの問題は、多分単語が正しくに動作しないラップだと思います。

ありがとうございます。以下のような

enter image description here

コード:

UITextView *myTextView = [[UITextView alloc]initWithFrame:CGRectMake(10, 10, 520, 220)]; 
myTextView.textColor = [UIColor blackColor];  
myTextView.font = [UIFont systemFontOfSize:20]; 
myTextView.layer.cornerRadius = 5; 
myTextView.delegate = self; 
myTextView.text = @"long text should some like http://stackoverflow.com/posts/11200726/edit"; 

[self.view addSubview:myTextView]; 
[myTextView release]; 

RESOVLED。 viewDidLoadメソッドで、次のコードを追加します。

CGRect tempFrame = myTextView.frame; 
[myTextView setFrame:CGRectZero]; 
[myTextView setFrame:tempFrame]; 
+0

UITextViewのコードを教えてください。ありがとう。 – pasawaya

+0

私はコードを追加しました。単に/ initを割り当ててから、リリースしてください。他のものはここにありません。 –

+0

あなたの修正プログラムも私のために動作します。私は短い文章でも同じ問題を抱えていたので、この問題は単語の折り返しには関係しないと思います。 FYI [myTextView setNeedsDisplay]または[myTextView setNeedsLayout]を呼び出しても解決されませんが、フレームの変更は行いません。 –

答えて

0

テキストの色は黒ですか。また、画像がビュー階層のtextViewの背後にあることを確認してください。 TextViewはワードラップを自動的に処理します。

+0

はい、それは黒です。ここに画像はありません。 –

0

この場合、modelViewControllerが表示される前にviewDidLoadが呼び出されていると思います。

  • modalViewControllerが表示された後にテキストを設定します。
  • これも機能しない場合は、モデルを提示した後、明示的にテキストを設定するメソッドを呼び出します。
+0

viewDidAppearでテキストを設定しようとしましたが、これも機能しません。 –

0

はあなたのビュー階層を確認してください。そのビューの上に別のtextViewを追加した可能性があります。

0

textViewの背景色を変更してみてください。 UITextViewがそこに追加されている必要があります。 UITextViewの上に別のビューをサブビューとして追加していないことを確認してください。 textColorが黒の場合は表示する必要がありますが、プロパティを変更しない限り、デフォルトで自動的にワードラップが行われます。また、XIBの属性設定を確認してください。

self.view 

トップ

self.view = [[[UIView alloc] initWithFrame:[UIScreen mainScreen].bounds] autorelease]; 

で、このコード行を追加しようとすると役立ちますされていない場合、このコード行に

myTextView.layer.cornerRadius = 5; 
+0

私はコードを追加しました。単に/ initを割り当ててから、リリースしてください。他のものはここにありません。 –

0

私は問題で考えます自分のクラスに、MyUITextView:UITextViewと言うことにしましょう。

[MyUITextView ALLOC] initWithFrame:CGRectZero]でそれをオフスクリーン初期MyUITextViewで

メソッド

オーバーライド - (ボイド)willMoveToWindow:(UIWindow *)をnewWindow

に設定し、self.frameを適切な値に設定します。

これは私のために働いた!

5

サブクラスUITextViewを削除してみてください。

+0

同じ問題がありますか?おそらく、ちょうどフレームをリセットする、私はこれを試してみます。ありがとう。 –

+1

私はちょうどviewDidLoadメソッドのフレームをリセットします。テキストビューをサブクラス化しないでください。そして、それは動作します!ありがとう! –

関連する問題