0

私は一種の奇妙な問題を抱えています。

ビュー コントローラーに戻った後、UILabel を更新しようとしています。

ビュー コントローラに戻ると、いくつかの作業を行ってからビューを更新しますが、UILabels は更新されません。

私は100%メインスレッドで作業していると確信しています(dispatch_asyncを使用してメインスレッドを取得しようとしても)、それでも機能しません。

また、lldb で print object コマンドを使用して確認したように、UILabel の text プロパティが更新されていることは確かですが、画面上では更新されません...

これは UILabel のコンテンツを変更する行です。かなりバニラです。

[(UILabel *)[self.view viewWithTag:1] setText:_accountInfo[@"name"]];

これは、実行直後のその行の「po」の出力です。

(lldb) po [self.view viewWithTag:1]
<UILabel: 0x165e87f0; frame = (20 12; 143 21); text = 'Testing Again'; clipsToBounds = YES; opaque = NO; autoresize = RM+BM; userInteractionEnabled = NO; tag = 1; layer = <CALayer: 0x165de750>>

ちなみに、私はARCを使用しており、iOS 7に展開しています。

コードのスニペットや情報がさらに必要な場合は、お知らせください。私はここでこの問題に必死になり始めています!

前もって感謝します。

編集:ビューを最初にセットアップしたときに、この同じコードが機能することを追加するのを忘れました。

4

4 に答える 4

1

こんな感じで使ってみて…

UILabel *label = (UILabel *)[self.view viewWithTag:1];
label.text = _accountInfo[@"name"];
于 2013-10-10T11:13:22.543 に答える
1

これを行うのはどうですか:

[((UILabel *)[self.view viewWithTag:1]) setText:_accountInfo[@"name"]];
于 2013-10-10T11:15:07.447 に答える
0

iOS7のダイナミックフォントを設定する必要があります これを試してください...

UIFontDescriptor *userFont = [UIFontDescriptor preferredFontDescriptorWithTextStyle:UIFontTextStyleBody];
float userFontSize = [userFont pointSize];
UIFont *font = [UIFont boldSystemFontOfSize:userFontSize];//[UIFont fontWithName:@"Helvetica" size:userFontSize];
[noteLabel setFont:font];
于 2013-10-10T11:39:12.717 に答える
0

以下の手順を実行します。

1) コードからラベルを追加した場合。メモリを割り当て、ラベルを初期化していることを確認してください。

2) Interface Builder でラベルをドラッグ & ドロップした場合は、適切なタグを付け、必要なコンセント接続を行っているかどうかを確認してください。

3) ラベルのタグと他のビューが競合していないかどうかを確認します。

4) cmd+shift+k を使用してすべてのターゲットを消去します。

5) 再度ビルドする

また

これを使用して、ラベルかどうかを確認します。

if ([[self.view viewWithTag:1] isMemberOfClass:[UILabel class]]) {
    //Its a label
    UILabel *label = (UILabel *)[self.view viewWithTag:1];
    label.text=@"Hello World";
}
else {
    //Its not a label
}

2 番目のオプションを試す必要があるかもしれません。何が起こっているかについて少なくともある程度のアイデアが得られます..

于 2013-10-10T11:44:24.043 に答える