2017-08-19 3 views
-1

Ich bin sehr verwirrt, warum dieser einfache Code nicht funktioniert, um die backgroundImage für meine benutzerdefinierten Schaltflächen zu setzen. Die Schaltflächen sind anklickbar, aber vollständig unsichtbar. Die Schaltflächenklasse ist im Interface Builder korrekt eingestellt. Der Schaltflächentyp ist auf Benutzerdefiniert eingestellt.UIButton image invisible

class DefaultButton: UIButton { 

override init(frame: CGRect) { 
    super.init(frame: frame) 
} 

required init?(coder aDecoder: NSCoder) { 
    super.init(coder: aDecoder) 
    setupView() 
} 

override func layoutSubviews() { 

} 

func setupView() { 
    setBackgroundImage(#imageLiteral(resourceName: "blue_button"), for: .normal) 
} 

Auch wenn ich das Hintergrundbild im Interface Builder eingestellt habe, funktioniert es nicht.

Wie setze ich das backgroundImage für eine UIButton ??

+0

'setImage (UIImage (benannt:" blue_button "), für: .normal)' – Masiama

Antwort

0

Sie mit setImage statt setBackgroundImage werden soll, wie folgt:

setImage(#imageLiteral(resourceName: "blue_button"), for: .normal) 
0

Entschuldige, war das eigentliche Problem, dass ich die layoutSubviews() Funktion wurde überschrieben. Ich würde nicht glauben, dass es irgendwelche Auswirkungen hätte, wenn die Funktion leer wäre ...

+1

Wenn Sie es überschreiben, sollten Sie immer anrufen 'super.layoutSubviews()' drin –

+0

Wunderbar, das ist ein toller Input! Jetzt verstehe ich viel besser, was 'super.xxxxxx()' bedeutet, danke! – nomadoda