0

と を表示する単純なビュー コントローラーがありUITextViewますUILabel。コントロールはストーリーボードに追加され、アウトレットとして適切なビュー コントローラー コードに接続されます。それらはストーリーボードのテキストで満たされ、テストすると正しく機能します。

しかし、スーパービューからコントロールを削除してから、サブビューとして再度追加しようとしたので、基本的には以前と同じ状態になるはずです。

ビューコントローラーのコードは以下です。

@interface ViewController ()

@property (weak, nonatomic) IBOutlet UITextView *textView;
@property (weak, nonatomic) IBOutlet UILabel *label;

@end

@implementation ViewController

- (void)viewWillAppear:(BOOL)animated
{
    [self.textView removeFromSuperview];
    [self.view addSubview:self.textView];

    [self.label removeFromSuperview];
    [self.view addSubview:self.label];
}

@end

しかし、次のコードの結果は、UITextView( textViewvariable) は表示されませんが、ラベルは表示されます。コードが実行された後に内容self.view.subviewsを印刷すると、階層にあり、正しいフレームもあります。しかし、テキストはまったく表示されません。self.textViewviewWillAppearUITextView

私も試しました:

  • コードにテキストを再度設定する
  • UITextViewコード内の背景を設定する
  • 呼びかけるsetNeedsDisplay_UITextView

UITextViewメモリに存在していても、何も返されません。私の解決策は、コードで別のものを割り当てるUITextViewことですが、それははるかに遅い操作です。

それで、ここで何が問題なのですか?のバグUITextViewですか?このコードが で機能し、 で機能しUILabelないのはなぜUITextViewですか?

ありがとうございました!

4

1 に答える 1

0

コンセントが接続されていることを確認してください。左側の灰色の円は、次のように塗りつぶされます。

ここに画像の説明を入力

Ctrl キーを押しながらドラッグすると、再度接続できます。self.textViewnil でないかどうかを確認することで確認することもできます。

于 2013-10-16T19:26:26.567 に答える