2016-07-14 19 views
0

Ich mache eine interaktive App, die ein UILabel mit einer blauen Farbe anzeigen soll, die verblassen muss, wenn eine bestimmte Taste gedrückt wird. Wenn wir den Knopf gedrückt halten, sollte die Farbe des Etiketts verblassen. Ich habe versucht, einen benutzerdefinierten UIColor zu erstellen und seine Helligkeit zu ändern, aber es ist nicht wirklich effektiv. Es verblasst ein paar Tastendrücke, nach denen sich die Farbe überhaupt nicht ändert.Fading der UIColor mit einem Button Drücken Sie

Was ist der beste Weg, um mein Ziel zu erreichen? Jede Hilfe wäre willkommen. Es ist eine einfache Aufgabe, aber ohne Grund zu ärgern.

hier ist der Code für das, was ich tue. "tube" ist das UILabel, dessen Hintergrundfarbe verblassen soll, wenn die int "Zählung" zunimmt.

var intensity : CGFloat = 0.3   
@IBAction func fa(sender: AnyObject) { 

    let five = UIColor(hue: 0.61, saturation: 0.31, brightness: 0.76, alpha: intensity) 
    let four = UIColor(hue: 0.61, saturation: 0.31, brightness: 0.65, alpha: intensity) 
    let three = UIColor(hue: 0.61, saturation: 0.31, brightness: 0.59, alpha: intensity) 
    let two = UIColor(hue: 0.61, saturation: 0.31, brightness: 0.53, alpha: intensity) 
    let one = UIColor(hue: 0.61, saturation: 0.31, brightness: 0.37, alpha: intensity) 



    count += 1 

    if (count == 0){ 
     tube.backgroundColor = UIColor(red: 109, green: 132, blue: 180, alpha: 0.2) 
    } 
    else if (count == 1){ 
     tube.backgroundColor = one 
     print("one") 
    } 

    else if (count == 2){ 
     tube.backgroundColor = two 
     print("two") 
    } 

    else if (count == 3){ 
     tube.backgroundColor = three 
     print("three") 
    } 

    else if (count == 4){ 
     tube.backgroundColor = four 
    } 

    else if (count == 5){ 
     tube.backgroundColor = five 
    } 
    else { 
     tube.backgroundColor = UIColor(red: 109, green: 132, blue: 180, alpha: 0.2) 
    } 
+0

Kann nicht helfen, ohne Code zu sehen. – Feldur

+0

@Feldur hat es gerade gepostet! :) –

Antwort

0

Unter der Annahme, dass der Viewcontroller Hintergrund weiß ist, können Sie die Hintergrundfarbe verblassen, indem tatsächlich entweder die Taste selbst oder den Alpha-Wert der Farbe verblassen.

Um die Undurchsichtigkeit der Schaltfläche ändern, verwenden Sie folgenden Code:

if tube.layer.opacity > 0 { 
    tube.layer.opacity -= 0.1 
} 

Wenn Sie die Farbe anstatt verblassen wollen, müssen Sie die RGB-Werte extrahieren (siehe this answer) von der vorherigen Farbe und ändern ihre alphaValue, während es neu erstellt wird.

+0

machte das Leben so einfach! Danke mein Herr! –