wake-up-neo.com

UIButton-Text programmgesteuert schnell ändern

Einfache Frage hier. Ich habe ein UIButton, CurrencySelector, und ich möchte den Text programmgesteuert ändern. Folgendes habe ich:

currencySelector.text = "foobar"

Xcode gibt mir den Fehler "Expected Declaration". Was mache ich falsch und wie kann ich den Text der Schaltfläche ändern lassen?

185
rocket101

In Swift 3:

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

Andernfalls:

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

Nur eine Klarstellung für die Neueinsteiger in Swiftund iOS/. Unter der Codezeile:

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

gilt nur für IBOutlets, nicht für IBActions.

Wenn Ihre App eine Schaltfläche als Funktion zum Ausführen von Code verwendet, beispielsweise zum Abspielen von Musik, und Sie den Titel von Play in Pause basierend auf einer Umschaltvariablen ändern möchten, müssen Sie auch eine IBOutlet für diese Schaltfläche erstellen.

Wenn Sie versuchen, button.setTitle gegen eine IBAction zu verwenden, erhalten Sie eine Fehlermeldung. Es ist offensichtlich, sobald Sie es wissen, aber für die Noobs (wir waren alle) war dies ein hilfreicher Tipp.

66
Bendrix

Swift 3:

Schaltflächentitel einstellen:

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

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

Schnell 4:

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

Swift 3.0 

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

Das Ändern des Titels bei Zuordnung ist etwas anders:

Ich bin gerade auf ein Problem gestoßen: Wenn Sie ein UIButton mit einem Attributed Title haben, müssen Sie Folgendes verwenden:

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

als, per Apple SetTitle Doc :

Wenn Sie sowohl einen Titel als auch einen zugeordneten Titel für die Schaltfläche festlegen, bevorzugt die Schaltfläche die Verwendung des zugeordneten Titels gegenüber diesem.

Ich hatte einen zugeschriebenen Titel und habe versucht, den Titel ohne Auswirkung zu setzen.

2

Swift 3

Wenn Sie die @IBAction machen:

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

Dadurch wird der Absender als UIButton (anstelle von Any) festgelegt, sodass die BtnAction als UIButton festgelegt wird

1

Swift 4.2 und höher

mit dem IBOutlet von button

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

mit der IBAction von button

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

Swift 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

Um einen Titel für eine Schaltfläche in Xcode mit Swift - 04 festzulegen, erstellen Sie zunächst eine Methode namens setTitle mit dem Parametertitel und dem UIController-Status (siehe unten).

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

}

und rufen Sie diese Methode in Ihrer Button-Action-Methode auf like;

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