web-dev-qa-db-ja.com

UIButtonのテキストをプログラム的に素早く変更する

簡単な質問はこちら。 UIButton、currencySelectorがあり、プログラムでテキストを変更したいのですが。これは私が持っているものです:

currencySelector.text = "foobar"

Xcodeは私に "Expected Declaration"というエラーを出します。何が間違っていますか。また、ボタンのテキストをどのように変更することができますか?

195
rocket101

Swift 3では:

button.setTitle("Button Title",for: .normal)

さもないと:

button.setTitle("Button Title", forState: UIControlState.Normal)
511
Gal Marom

Swift および iOS プログラミングの初心者向けの説明です。以下のコード行

button.setTitle("myTitle", forState: UIControlState.Normal)

IBOutletsにのみ適用され、IBActionsには適用されません。

そのため、あなたのアプリがコードを実行するための機能としてボタンを使っていて、例えば音楽を演奏していて、トグル変数に基づいてタイトルをPlayからPauseに変更したい場合、そのボタンのIBOutletも作成する必要があります。

IBActionに対してbutton.setTitleを使用しようとすると、エラーが発生します。あなたがそれを知ってしまえばその明白なことですが、(私たちは皆そうでした)noobにとっては、これは役に立つヒントです。

69
Bendrix

スイフト4:

    for state: UIControlState in [.normal, .highlighted, .disabled, .selected, .focused, .application, .reserved] {
        button.setTitle(NSLocalizedString("Title", comment: ""), for: state)
    }
9
Dmitry

スイフト3:

ボタンのタイトルを設定します。

//for normal state:
my_btn.setTitle("Button Title", for: .normal)

// For highlighted state:
my_btn.setTitle("Button Title2", for: .highlighted)
7
Bhavin Ramani

スイフト3.0

// Standard State
myButton.setTitle("Title", for: .normal)
5
Tyler Rutt

属性付け時のタイトルの変更は少し異なります。

私はただ問題に遭遇しました:あなたが属性付きタイトルを持つUIButtonを持っているならば、あなたは使用しなければなりません:

my_btn.setAttributedTitle(NSAttributedString(string: my_title), for: my_state)

/として、 Apple SetTitle Doc

ボタンにタイトルと属性付きタイトルの両方を設定した場合、ボタンはこれよりも属性付きタイトルの使用を優先します。

属性付きのタイトルを持っていて、それにsetTitleを試みましたが、効果はありません...

3

スイフト3

@IBActionを作るとき:

@IBAction func btnAction(_ sender: UIButton) {
  sender.setTitle("string goes here", for: .normal)
}

これは、送信者を(Anyではなく)UIButtonとして設定するので、btnActionをUIButtonとしてターゲットとします。

2

スイフト3

let button: UIButton = UIButton()
button.frame = CGRect.init(x: view.frame.width/2, y: view.frame.height/2, width: 100, height: 100)
button.setTitle(“Title Button”, for: .normal)
0
Giang

Swift-04を使用してXcodeでボタンのタイトルを設定するには、次の手順を実行します。最初に、パラメータtitleとUIControllerの状態を次のように設定したsetTitleというメソッドを作成します。

func setTitle(_ title : String?, for state : UIControl.State)   {

}

そしてあなたのボタンアクションメソッドの中でこのメソッドを思い出してください。

yourButtonName.setTitle("String", for: .state)
0
Jasani Hardik

Swift 4.2以上

ボタンのIBOutletを使う

btnOutlet.setTitle("New Title", for: .normal)

ボタンのIBActionを使用

@IBAction func btnAction(_ sender: UIButton) {
  sender.setTitle("New Title", for: .normal)
}
0
midhun p