web-dev-qa-db-fra.com

Définit l'alpha de l'arrière-plan d'UIButton mais pas le titre

Lorsque je règle l'alpha du bouton, cela affecte également l'opacité du titre. Existe-t-il un moyen de ne cibler que l'arrière-plan et de laisser l'alpha du titre à 1,0?

20
Jon

Cela fonctionne pour moi:

self.myButton.backgroundColor = [UIColor clearColor];

ou si vous ne voulez pas que tout soit clair, mais avec transparence, vous pouvez utiliser:

self.myButton.backgroundColor = [UIColor colorWithRed:200.0/255.0 green:200.0/255.0 blue:200.0/255.0 alpha:0.5];

Le deuxième exemple vous donnerait une couleur grise avec alpha 0.5.

Mise à jour Swift 4

myButton.backgroundColor = .clear

OR

myButton.backgroundColor = UIColor(red: 200.0/255.0, green: 200.0/255.0, blue: 200.0/255.0, alpha:0.5)
24
SasaT

Vous pouvez également changer l’alpha de la couleur dans le storyboard,

voir l'image ci-jointe:

 change alpha of color in storyboard/interface builder

17
brush51

Dans Swift :

import UIKit

class SignInUpMenuTableViewControllerBigButton: UIButton {

    required init(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
        self.applyCustomDesign()
    }

    func applyCustomDesign() {
        // We set the background color of the UIButton.
        self.clearHighlighted()
    }

    override var highlighted: Bool {
        didSet {
            if highlighted {
                self.highlightBtn()
            } else {
                self.clearHighlighted()
            }
        }
    }

    func highlightBtn() {
        self.backgroundColor = UIColor.whiteColor().colorWithAlphaComponent(0.0)
    }

    func clearHighlighted() {
        self.backgroundColor = UIColor.whiteColor().colorWithAlphaComponent(0.05)
    }

}
7
King-Wizard

Sous-classer UIButton et étendre la méthode setEnabled: semble fonctionner:

- (void) setEnabled:(BOOL)enabled {    
    [super setEnabled:enabled];
    if (enabled) {
        self.imageView.alpha = 1;
    } else {
        self.imageView.alpha = .25;
    }
}
1
lakesh

Swift button.backgroundColor = UIColor.white.withAlphaComponent(0.7)

0
m.alqadi

Avec un bouton UIB, vous pouvez supprimer l’arrière-plan en définissant le style du bouton sur Personnalisé plutôt que sur Rectangle. Le titre reste intact, mais l’arrière-plan du bouton est supprimé. Si vous procédez de la sorte dans Storyboards, vous pouvez modifier le style du bouton dans les propriétés de l'élément. Pour le code, le format est:

UIButton *button = [[UIButton alloc] buttonWithType:UIButtonTypeCustom];
// Setup frame and add to view
0
Alex Blundell