iOS 5.1 をターゲットにしており、ストーリーボードを使用しています。UITableViewCell 内に UIButton があり、タップすると「Touch Up Inside」メソッドを呼び出し、Web サービスを呼び出し、完了ハンドラー内で、すべてのボタン状態のテキストを設定する関数の呼び出しで UIButton のテキストを更新しますそのようです:
+(void) setButtonText:(NSString *)text forButton:(UIButton *)button
{
[button setTitle:text forState:UIControlStateNormal];
[button setTitle:text forState:UIControlStateDisabled];
[button setTitle:text forState:UIControlStateHighlighted];
[button setTitle:text forState:UIControlStateSelected];
}
ボタンをタップするだけでもうまく機能しますが、ボタンを長押しして放すと、Web サービスの呼び出しと完了ハンドラーが呼び出されてすぐに戻りますが、ボタンのテキストが更新されるまでに約 5 秒かかります。ボタンとself.viewの両方でsetNeedsDisplayを呼び出してみました。誰かが長いプレス+リリースを行ったときに、テキストをすぐに更新する方法はありますか?