Ich habe einen UIButton, der bei Auswahl den Status nicht ändern sollte, wenn er berührt wird. Das Standardverhalten ist, dass es sich in UIControlStateHighlighted befindet, während es berührt wird, und das macht mich wütend.
Vorschläge?
Ihre Schaltfläche muss buttonType
auf Benutzerdefiniert eingestellt sein.
In IB können Sie "Markierung passt Bild an" deaktivieren.
Programmatisch können Sie verwenden theButton.adjustsImageWhenHighlighted = NO;
Ähnliche Optionen sind auch für den Status "Deaktiviert" verfügbar.
Stellen Sie zusätzlich zu der obigen Antwort auf das Deaktivieren von "Hervorheben passt das Bild an" in IB sicher, dass der Schaltflächentyp BENUTZERDEFINIERT eingestellt ist.
quelle
Dies wird für Sie funktionieren:
3. Zeile ist der Trick hier ...
Dies funktioniert genauso für das Festlegen von image / backgroundImage
quelle
adjustsImageWhenHighlighted
Eigenschaft vonUIButton
scheint nur das Hintergrundbild zu beeinflussen.quelle
ist gleichermaßen nützlich, um eine deaktivierte Schaltfläche selbst anzuzeigen.
quelle
Abhängig davon, was sich vom Standardzustand zum hervorgehobenen Status der Schaltfläche ändert, können Sie verschiedene Methoden aufrufen, um sie auf die gewünschten Einstellungen festzulegen. Wenn sich das Bild ändert, können Sie dies tun
Wenn sich der Text ändert, können Sie dies tun
andere ähnliche Funktionen:
- (void)setTitleColor:(UIColor *)color forState:(UIControlState)state
- (void)setTitleShadowColor:(UIColor *)color forState:(UIControlState)state
quelle
OK, hier ist eine einfache Lösung, wenn dies für Sie funktioniert. Nachdem ich eine Woche lang mit dem Kopf darauf geschlagen hatte, kam mir schließlich der Gedanke, für die erste Zeile der IBAction-Methode für TouchUpInside oder TouchDown oder was auch immer funktioniert, einfach hervorgehoben = NEIN zu setzen. Für mich war es auf dem TouchUpInside in Ordnung.
quelle
Für schnelle Entwickler -
quelle
Swift 3+
quelle
nur zwei Dinge:
quelle
Ich hatte ein ähnliches Problem und stellte fest, dass das Deaktivieren des Kontrollkästchens "Grafikinhalt löschen" im Interface Builder mein Problem behoben hat
quelle
Machen Sie Ihre Schaltfläche Typ - "Benutzerdefiniert" und Deaktivieren - Markiert Bild anpassen und Sie sind fertig.
quelle
vermeiden UIButton die festlegen Zeilenumbruch Clip , verwenden Sie stattdessen den Standard Kürzen Mittel
quelle