2016-03-27 9 views
0

Ich habe transparentes Bild, das ich versuche, wie dies als UIButton in Code zu verwenden:UIButton mit benutzerdefinierter Bild Hervorhebung nicht auf ausgewählte

 settingsButton = UIButton(type: UIButtonType.Custom) 
     settingsButton.translatesAutoresizingMaskIntoConstraints = false 
     settingsButton.setImage(UIImage(named: "gear_icon.png"), forState: UIControlState.Normal) 
     settingsButton.showsTouchWhenHighlighted = true 
     settingsButton.addTarget(self, action: #selector(GameViewController.settingsButtonPressed(_:)), forControlEvents: UIControlEvents.TouchUpInside) 
     view.addSubview(settingsButton) 
     let topConstraint = settingsButton.topAnchor.constraintEqualToAnchor(view.topAnchor, constant: 10) 
     let rightConstraint = settingsButton.rightAnchor.constraintEqualToAnchor(view.rightAnchor, constant: -10) 
     NSLayoutConstraint.activateConstraints([topConstraint, rightConstraint]) 

Wenn ich auf die Schaltfläche auswählen, wird die Schaltfläche nicht wurde wie folgt dargestellt: Standard-UIB-Tasten. Müssen Sie ein benutzerdefiniertes Image für UIControlState.Selected bereitstellen? Ich einige Code sah, dass Sie diesen Effekt liefern lassen würde durch eine UIImage in Code wie folgt zu erstellen:

func imageWithColor(color: UIColor) -> UIImage { 
     let rect = CGRect(x: 0.0, y: 0.0, width: 1.0, height: 1.0) 
     UIGraphicsBeginImageContext(rect.size) 
     let context: CGContextRef = UIGraphicsGetCurrentContext()! 
     CGContextSetFillColorWithColor(context, color.CGColor) 
     CGContextFillRect(context, rect) 
     let image = UIGraphicsGetImageFromCurrentImageContext() 
     UIGraphicsEndImageContext() 

     return image 
    } 

Aber wenn ich irgend Beispiel sah Projekte online, die benutzerdefinierte Bilder in IB zu verwenden, es sieht nicht wie sie Setze ein beliebiges Bild für den UIControlState.Selected, aber das Bild für den UIButton wird grau, wenn der Button gedrückt wird, also war ich verwirrt, wie das gemacht wurde.

+0

settingsButton = UIButton() versuchen Sie dies – kb920

Antwort

0

Ich denke, Ihre Schaltfläche wurde nicht hervorgehoben, weil Sie es angepasst haben, ich denke, Sie müssen Bild für hervorgehobene und gedrückte Zustände hinzufügen, oder Schaltfläche Typ von benutzerdefinierten zu einem anderen Typ von UIButtonType ändern und dann Bild für den Normalzustand festlegen, Ich denke, es wird helfen

Verwandte Themen