103

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

calibrationButton.titleLabel.text = @"Calibration";

テキストが変更されていることを確認しましたが、アプリを実行してボタンをクリックすると、一瞬「キャリブレーション」に変わり、その後すぐにデフォルト値に戻ります。なぜこれが起こっているのでしょうか?呼び出す必要があるある種の更新機能はありますか?

4

7 に答える 7

250

サブビューをレイアウトするとき、UIButton は独自のタイトル値を使用して titleLabel のテキスト値を設定するため、4 つの状態 (通常、強調表示、選択済み、無効) に最大 4 つの異なる文字列を設定できます。

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

これは、ボタンの状態のタイトル テキストを変更するために必要なことです。

[calibrationButton setTitle:@"Calibration" forState:UIControlStateNormal];
于 2012-07-10T15:50:34.680 に答える
35

ボタンのテキストを設定するには、次のメソッドを使用します。

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

詳細についてはUIButton、クラスのリファレンスを参照してください... http://developer.apple.com/library/ios/#documentation/uikit/reference/UIButton_Class/UIButton/UIButton.html

またはSwift 3では:

calibrationButton.setTitle("Calibration", for: .normal)
于 2012-07-10T15:50:38.617 に答える
6

プログラムで、以下のようにボタンのタイトルを設定できます。

[myButton setTitle:@"buttonTitle" forState:UIControlStateNormal];

ストーリーボードからボタンのタイトル プロパティを設定することもできます。

于 2015-07-11T17:45:18.533 に答える
2

大したことではなく、おそらく明らかですが、ボタンに使用できる状態がいくつかあります。「間違った」ものを指定すると、テキストが期待どおりに変更されません。

ここに示す方法を使用して、追加したテキストがボタンに表示されていないことに気付きました。このリンクをチェックして、意図した UIControlState を提供していることを確認してください。

UIControlStateHighlighted と UIControlStateSelected の違いは何ですか?

于 2014-04-05T18:35:22.820 に答える
1

スイフト 3.0 の場合

let button = UIButton(type: .system)
button.frame = CGRect(x: 100, y: 100, width: 100, height: 100)
button.setTitle("set here", for: .normal)
button.addTarget(self, action: #selector(TableViewController.actionButtonTocuh), for: .touchUpInside)
button.titleLabel?.textColor  = #colorLiteral(red: 0.1019607857, green: 0.2784313858, blue: 0.400000006, alpha: 1)
view.addSubview(button)
于 2016-10-21T08:46:06.130 に答える