2016-05-13 12 views

Antwort

2

LÖSUNG:

1) Erstellen Sie ein IBAction von Ihrem UIButton und auch ein IBOutlet genannt button.

EDIT: Wie pro Ihre Anfrage (Wie die selbst auslösen, wenn die Taste berührt wird, nicht freigegeben?):

enter image description here

2) Tun Sie dies:

@IBAction func changes (sender: UIButton) { 

    button.backgroundColor = UIColor.blueColor() 

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

} 
+0

Danke, aber es zeigt nur den Hintergrund als blau, wenn ich die Maus loslassen, gibt es eine Möglichkeit, es zu tun, wenn ich darauf klicke? – Snorlax

+0

@Snorlax Antwort bearbeitet! – Coder1000

+0

Danke, genau das, was ich wollte, bekomme ich diesen Fehler obwohl nachdem ich es angeklickt habe und es grau wird: 2016-05-15 16: 18: 15.708 ModalTest3 [18234: 2955837] - [ModalTest3.helpViewController buttonChange:]: unerkannter Selektor gesendet an Instanz 0x7fb9238abed0 2016-05-15 16: 18: 15.712 ModalTest3 [18234: 2955837] *** Beenden der App aufgrund der nicht abgefangenen Ausnahme 'NSInvalidArgumentException', Grund: '- [ModalTest3.helpViewController buttonChange:]: unerkannter Selektor gesendet an Beispiel 0x7fb9238abed0 ' – Snorlax

4

UIButton haben eine Methode zum Einstellen der Titelfarbe. Also, wenn Sie hatten ein UIButton IBOutlet namens myBtn:

myBtn.setTitleColor(UIColor.blackColor(), forState: .Highlighted) 

und den Text der Taste auf Touch ändern:

myBtn.setTitle("This button was touched", forState: .Highlighted) 

Was die Hintergrundfarbe einstellen, könnten Sie eine Erweiterung hinzufügen, für Ihre UIButton, die Sie dies tun können:

extension UIButton { 
    private func imageWithColor(color: UIColor) -> UIImage { 
     let rect = CGRectMake(0.0, 0.0, 1.0, 1.0) 
     UIGraphicsBeginImageContext(rect.size) 
     let context = UIGraphicsGetCurrentContext() 

     CGContextSetFillColorWithColor(context, color.CGColor) 
     CGContextFillRect(context, rect) 

     let image = UIGraphicsGetImageFromCurrentImageContext() 
     UIGraphicsEndImageContext() 

     return image 
    } 

    func setBackgroundColor(color: UIColor, forUIControlState state: UIControlState) { 
     self.setBackgroundImage(imageWithColor(color), forState: state) 
    } 
} 

Dann könnten Sie tun:

myBtn.setBackgroundColor(UIColor.grayColor(), forUIControlState: .Highlighted) 

Hoffe, das hilft!

2

Ihre UIButton @IBOutlet closePop ist an eine einzelne @IBAction mit exakt demselben Namen angeschlossen (closePop()). Das closePop() IBAction NUR die helpViewController - es tut nichts über die Text- oder Schaltflächenfarbe.

Ihre andere @IBAction Funktion like, in dem Sie versuchen, die Farbe & Druck zu setzen „Ist das überhaupt funktioniert?“, Wird die Schaltfläche nicht angeschlossen, und wird nie aufgerufen.

+0

Vielen Dank für die Klarstellung! – Snorlax