1. ホーム
  2. objective-c

[解決済み] UIButtonのテキストを変更する

2022-11-11 23:47:53

質問

UIButtonをクリックしたときに、そのテキストを更新しようとしています。私はテキストを変更するために次の行を使用しています。

calibrationButton.titleLabel.text = @"Calibration";

テキストが変化していることは確認しましたが、アプリを実行してボタンをクリックすると、一瞬だけ"Calibration"に変わり、すぐにデフォルト値に戻ってしまいます。 なぜこのようなことが起こるのか、何か思い当たることはありますか?私が呼び出さなければならないある種のリフレッシュ関数があるのでしょうか?

どのように解決するのですか。

サブビューをレイアウトする際、UIButtonは自身のタイトル値を使ってtitleLabelのテキスト値を設定するので、4つの状態(通常、ハイライト、選択、無効)に対して最大で4種類の文字列を設定することができるようになります。

この機能のため、titleLabel のテキストを直接設定しても持続せず、ボタンがそのサブビューをレイアウトするときにリセットされます。

これは、ボタンの状態のタイトルテキストを変更するために行わなければならないことです。

[calibrationButton setTitle:@"Calibration" forState:UIControlStateNormal];