Ich versuche also, den Text auf einem UIButton zu aktualisieren, wenn ich darauf klicke. Ich benutze die folgende Zeile, um den Text zu ändern:
calibrationButton.titleLabel.text = @"Calibration";
Ich habe überprüft, ob sich der Text ändert, aber wenn ich die App starte und auf die Schaltfläche klicke, ändert sie sich für den Bruchteil einer Sekunde in "Kalibrierung" und kehrt dann direkt zu ihrem Standardwert zurück. Irgendwelche Ideen, warum dies passieren könnte? Gibt es eine Art Aktualisierungsfunktion, die ich aufrufen muss?
objective-c
ios
xcode
event-handling
uibutton
Julian Coltea
quelle
quelle
Antworten:
Beim Anordnen der Unteransichten legt ein UIButton den Textwert des titleLabel mithilfe seiner eigenen Titelwerte fest, sodass Sie bis zu vier verschiedene Zeichenfolgen für die vier Status festlegen können (normal, hervorgehoben, ausgewählt, deaktiviert).
Aufgrund dieser Funktion bleibt das direkte Festlegen des Textes von titleLabel nicht bestehen und wird durch die Schaltfläche zurückgesetzt, wenn die Unteransichten angeordnet werden.
Dies müssen Sie tun, um den Titeltext für den Status einer Schaltfläche zu ändern.
quelle
button.titleLabel
, sehen Sie, dass titleLabel eine schreibgeschützte Eigenschaft ist und daher alle Eigenschaften einer schreibgeschützten Eigenschaft auch schreibgeschützt sind. Die Verwendung der Punktnotation zum Bearbeiten funktioniert nicht. Daher benötigen Sie explizite Methoden, um sie zu bearbeiten. Das macht zumindest für mich Sinn.Although this property is read-only, its own properties are read/write. Use these properties primarily to configure the text of the button. For example:
Verwenden Sie die folgende Methode, um den Schaltflächentext festzulegen:
UIButton
Weitere Informationen finden Sie in der Klassenreferenz ... http://developer.apple.com/library/ios/#documentation/uikit/reference/UIButton_Class/UIButton/UIButton.htmlOder in Swift 3:
quelle
Programmgesteuert können Sie den Schaltflächentitel wie folgt einstellen:
Sie können die Eigenschaft für Schaltflächentitel auch über das Storyboard festlegen.
quelle
Keine große Sache und möglicherweise offensichtlich, aber es gibt mehrere Zustände für Schaltflächen. Wenn Sie die 'falsche' angeben, wird der Text nicht wie gewünscht geändert.
Ich habe festgestellt, dass auf meiner Schaltfläche der von mir hinzugefügte Text mit den hier gezeigten Methoden nicht angezeigt wird. Überprüfen Sie diesen Link, um sicherzustellen, dass Sie den beabsichtigten UIControlState bereitstellen.
Was ist der Unterschied zwischen UIControlStateHighlighted und UIControlStateSelected?
quelle
Für Swift 3.0
quelle
Für Swift 2.0:
quelle
Wenn Sie den Titel nicht für alle Status festlegen möchten, legen Sie ihn einfach für den normalen Status fest, da der Titel für die nicht festgelegten Status standardmäßig den Titel des normalen Status verwendet.
quelle