簡単な質問はこちら。 UIButton、currencySelectorがあり、プログラムでテキストを変更したいのですが。これは私が持っているものです:
currencySelector.text = "foobar"
Xcodeは私に "Expected Declaration"というエラーを出します。何が間違っていますか。また、ボタンのテキストをどのように変更することができますか?
Swift 3では:
button.setTitle("Button Title",for: .normal)
さもないと:
button.setTitle("Button Title", forState: UIControlState.Normal)
Swift および iOS プログラミングの初心者向けの説明です。以下のコード行
button.setTitle("myTitle", forState: UIControlState.Normal)
IBOutlets
にのみ適用され、IBActions
には適用されません。
そのため、あなたのアプリがコードを実行するための機能としてボタンを使っていて、例えば音楽を演奏していて、トグル変数に基づいてタイトルをPlay
からPause
に変更したい場合、そのボタンのIBOutlet
も作成する必要があります。
IBAction
に対してbutton.setTitle
を使用しようとすると、エラーが発生します。あなたがそれを知ってしまえばその明白なことですが、(私たちは皆そうでした)noobにとっては、これは役に立つヒントです。
for state: UIControlState in [.normal, .highlighted, .disabled, .selected, .focused, .application, .reserved] {
button.setTitle(NSLocalizedString("Title", comment: ""), for: state)
}
スイフト3:
ボタンのタイトルを設定します。
//for normal state:
my_btn.setTitle("Button Title", for: .normal)
// For highlighted state:
my_btn.setTitle("Button Title2", for: .highlighted)
スイフト3.0
// Standard State
myButton.setTitle("Title", for: .normal)
属性付け時のタイトルの変更は少し異なります。
私はただ問題に遭遇しました:あなたが属性付きタイトルを持つUIButtonを持っているならば、あなたは使用しなければなりません:
my_btn.setAttributedTitle(NSAttributedString(string: my_title), for: my_state)
/として、 Apple SetTitle Doc :
ボタンにタイトルと属性付きタイトルの両方を設定した場合、ボタンはこれよりも属性付きタイトルの使用を優先します。
属性付きのタイトルを持っていて、それにsetTitleを試みましたが、効果はありません...
スイフト3
@IBActionを作るとき:
@IBAction func btnAction(_ sender: UIButton) {
sender.setTitle("string goes here", for: .normal)
}
これは、送信者を(Anyではなく)UIButtonとして設定するので、btnActionをUIButtonとしてターゲットとします。
スイフト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)
Swift-04を使用してXcodeでボタンのタイトルを設定するには、次の手順を実行します。最初に、パラメータtitleとUIControllerの状態を次のように設定したsetTitleというメソッドを作成します。
func setTitle(_ title : String?, for state : UIControl.State) {
}
そしてあなたのボタンアクションメソッドの中でこのメソッドを思い出してください。
yourButtonName.setTitle("String", for: .state)
Swift 4.2以上
ボタンのIBOutletを使う
btnOutlet.setTitle("New Title", for: .normal)
ボタンのIBActionを使用
@IBAction func btnAction(_ sender: UIButton) {
sender.setTitle("New Title", for: .normal)
}