ですから、UIButtonをクリックすると、UIButtonのテキストを更新しようとしています。次の行を使用してテキストを変更しています。
calibrationButton.titleLabel.text = @"Calibration";
テキストが変更されていることを確認しましたが、アプリを実行してボタンをクリックすると、一瞬「キャリブレーション」に変わり、すぐにデフォルト値に戻ります。なぜこれが起こっているのでしょうか?呼び出す必要があるリフレッシュ関数がありますか?
サブビューをレイアウトするとき、UIButtonは独自のタイトル値を使用してtitleLabelのテキスト値を設定するため、4つの状態(通常、強調表示、選択、無効)に対して最大4つの異なる文字列を設定できます。
この機能のため、titleLabelのテキストを直接設定しても保持されず、サブビューをレイアウトするときにボタンによってリセットされます。
これは、ボタンの状態のタイトルテキストを変更するために必要なことです。
[calibrationButton setTitle:@"Calibration" forState:UIControlStateNormal];
ボタンのテキストを設定するには、次の方法を使用します。
[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)
プログラムでボタンのタイトルを以下のように設定できます。
[myButton setTitle:@"buttonTitle" forState:UIControlStateNormal];
ストーリーボードからボタンタイトルプロパティを設定することもできます。
Swift 2.0の場合:
let btnObject : UIButton = UIButton()
btnObject.frame = CGRect(x: 8, y: 89, width: 70, height: 22)
btnObject.setTitle("Button Title", forState: UIControlState.Normal)
btnObject.titleLabel?.font = UIFont(name: "Helvetica Neue", size: 13)
btnObject.titleLabel?.textColor = UIColor.whiteColor()
btnObject.backgroundColor = UIColor(red: 189/255, green: 176/255, blue: 0/255, alpha: 1)
btnObject.titleLabel?.textAlignment = NSTextAlignment.Center
btnObject.addTarget(self, action: "btnbtnObjectClick:", forControlEvents: UIControlEvents.TouchUpInside)
subView.addSubview(btnObject)
大したことではなく、おそらく明らかですが、ボタンにはいくつかの状態があります。 「間違った」ものを指定した場合、必要に応じてテキストが変更されることはありません。
ここに示す方法を使用して、追加したテキストがボタンに表示されていないことに気付きました。このリンクをチェックして、意図するUIControlStateを提供していることを確認してください。
Swift 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)