2016-06-02 4 views
1

Ich möchte die Opazität einer Schaltfläche auf 40% festlegen, wenn sie deaktiviert ist.Anhören der Swift-Schaltfläche Disable-Ereignis

Derzeit bin ich mit den folgenden geänderten Code I auf Stackoverflow gefunden:

let disabledColor = self.backgroundColor!.colorWithAlphaComponent(0.4) 
self.setBackgroundImage(self.imageForColor(disabledColor), forState: .Disabled) 

private func imageForColor(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 
} 

Ich dachte, ich wäre in der Lage, die Opazität auf der Hintergrundfarbe einstellen Ich verwende und dann einfach ein Bild erstellen aus und verwenden Sie es im Status .Disabled, aber das tut nichts.

Wenn ich etwas wie UIColor.redColor() an imageForColor sende, ändert sich die Schaltfläche zu Rot, wenn sie deaktiviert ist ... die Deckkraft scheint jedoch ignoriert zu werden.

Weiß jemand, warum das ist? Es wäre schön, wenn ich nur für Behinderte Veranstaltung hören konnte und meine eigene Funktion Feuer oder wenn Apple uns umgeht Set Hintergrundfarbe zu lassen für Staat würde eher als Hintergrundbild ...

****** EDIT ******

Probieren einige weitere Dinge, es sieht aus wie es das Bild richtig anwenden, aber es scheint, es über die Hintergrundfarbe anzuwenden und da es die gleiche Farbe ist, aber mit einer Opazität, die Änderung ist schwer zu bemerken.

Ich denke, eine Lösung nur Hintergrundbilder verwenden würde, anstatt Farben (?), Da ich nicht die Farbe ersetzen kann ...

Idealerweise würde Ich mag Opazität auf die gesamte Schaltfläche anzuwenden auf einem Deaktivierungsereignis.

Antwort

1

Ich denke, dass Sie am besten UIButton Unterklasse sein würden, dann überschreiben setEnabled, so dass Sie die Hintergrundfarbe manipulieren können. Siehe this very similar thread.

Verwandte Themen