1

そのため、API メソッドを呼び出すクラスがあり、リクエストが完了すると、コントローラー ビューでデリゲート メソッドを呼び出します。

[self.myButton setEnabled:NO];
self.myButton.titleLabel.textColor = [UIColor grayColor];
NSLog(@"%@", self.myButton.titleLabel.textColor);

テキストの色を青からグレーに変更して、ボタンを 2 回クリックできないことをユーザーに知らせます。

でも、色は変わりません。これはデバッグログにあるものです:

UIDeviceWhiteColorSpace 0.5 1

なんで?私が同じことをするとき:

- (void)viewWillAppear:(BOOL)animated

それは機能し、ボタンのテキストの色を灰色に変更します。

4

2 に答える 2

4

あなたはあなたのviewDidLoadでこれを行うことができます

[self.myButton setTitleColor:[UIColor blueColor] forState:UIControlStateNormal];
[self.myButton setTitleColor:[UIColor grayColor] forState:UIControlStateDisabled];

setEnabled:NO を実行すると、自動的に無効状態に切り替わり、テキストの色が灰色に設定されます。

于 2012-04-07T13:04:37.690 に答える
1

UI の更新はすべてメイン スレッドで行う必要があります。それがおそらく問題です。

于 2012-04-07T13:02:08.253 に答える