4

ボタンのタイトル ラベルの設定に問題があります。基本的に私は2つの画面を持っていて、両方にこのボタンがありますが、両方に異なる「番号」が書かれています。何が起こっているかというと、ボタンのタイトルが現在の画面を正確に反映するまでに 1 ~ 2 秒の非常に顕著な遅延があります。入れようとしまし[self.button reloadInputViews];たが、それでもリロードせず、まだ遅延が発生します。

[self.button setTitle:[NSString stringWithFormat:@"%d", [stringValue integerValue]]
             forState:UIControlStateNormal];

ボタンのタイトルラベルを強制的に更新する方法を誰かが知っていますか? 助けてくれてありがとう!

編集:コンテキストのコードを追加

        self.guestsField = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    self.guestsField.frame = CGRectMake(self.guestsLabel.frame.origin.x + self.guestsLabel.frame.size.width, 100, 40, 30);
    self.guestsField.titleLabel.font = [UIFont systemFontOfSize:20];
    [self.guestsField addTarget:self action:@selector(pressGuestsField:) forControlEvents:UIControlEventTouchDown];
    [self.view addSubview:self.guestsField];'

myFunction{
NSDictionary* dict = [通知 userInfo];

    if ([dict count] > 0)
    {
        [self.guestsField setTitle:[NSString stringWithFormat:@"%d", [GetOrder.NumberOfGuests integerValue]] forState:UIControlStateNormal];
    }

}

修正: 別のスレッドで myFunction を実行していました。メインスレッドで setTitle を実行しましたdispatch_sync(dispatch_get_main_queue(), ^{

4

1 に答える 1

1

サーバーからデータを取得するまでラベルを設定するのを待っている場合は、それが遅延の理由のようです。ネットワーク コードをコメント アウトして、ラベルがすぐに更新されるかどうかを確認します。

于 2013-07-22T19:37:21.303 に答える