web-dev-qa-db-fra.com

Comment supprimer la couleur de fond sélectionnée pour UIButton?

Je cherche une solution à ce problème qui n'exige PAS l'utilisation d'images/PNG. Je cherche un moyen de supprimer la couleur d'arrière-plan bleue de la UIButton lorsqu'elle est dans l'état sélectionné et je ne trouve pas le moyen de le faire sans utiliser d'images. J'essaie fondamentalement de faire quelque chose comme ça dans le cas d'une UITableViewCell:

   cell.selectionStyle = UITableViewCellSelectionStyleNone;
29
TommyG

Malheureusement, je suis loin de ma machine de test pour le moment, mais vous pouvez essayer deux choses.

La première serait de définir la propriété suivante:

button.adjustsImageWhenHighlighted = NO;

Ou décochez "Surligner les réglages d'image" dans Interface Builder.

Si cela ne fonctionne pas comme prévu, vous pouvez désélectionner le bouton dans l'action à laquelle vous l'avez lié, comme suit:

- (IBAction)yourButtonAction:(id)sender {
    [sender setHighlighted:NO];
}
16
sudo rm -rf

J'ai eu ce même problème et je le résous en changeant le type de UIButton de "Système" à "Personnalisé". La couleur d'arrière-plan bleue n'apparaît pas dans l'état sélectionné lorsqu'elle est de type "Personnalisé".

106
Rufus

Changer l'alpha de la teinte à zéro, fonctionne si iOS est 5.0 ou version ultérieure

UIColor *color = [[UIColor alloc] initWithRed:0.0 green:0.0 blue:0.0 alpha:0.0];  
button.tintColor = color;
9
Ali Seymen

Très simple dans "inspecteur d'attributs" de la commande uibutton, faites défiler jusqu'à la section "voir" et juste en dessous du "Fond", recherchez "Teinte" et réglez-le sur "clear color ”ou toute couleur spécifique si vous voulez cette couleur. Instantané des réglages

3
Akash Bhardwaj

UIButton également avec le type custom, nous pouvons le définir dans xcode as- 

 enter image description here

OU Par programmation

 let customButton = UIButton(type: .custom) 
  customButton.setTitle("this is Button", for: .normal)
  customButton.setTitleColor(UIColor.blue, for: .normal)
  customButton.frame = CGRect(x: 15, y: 50, width: 300, height: 500)
            self.view.addSubview( customButton)

Maintenant, il n'y a plus de _ {couleur de fond bleu de UIButton} _

3
Jack

Qu'est-ce que cela a fait pour moi était de changer le bouton.tintColor dans l'état en surbrillance. C'est Swift 3, iOS 10

override public var isHighlighted: Bool {
    didSet {
        self.tintColor = UIColor(red: 255/255, green: 255/255, blue: 255/255, alpha: 1.0)
    }
}

Ou vous pouvez faire la même chose dans le constructeur d'interface 

Choisir l'état du bouton

Choisir la couleur de teinte du bouton

1
Sasa Blagojevic

Version rapide

extension UIButton {
    override public var highlighted: Bool {
        didSet {
            // clear background color when selected
            self.layer.backgroundColor = .None
        }
    }
}
0
jk2K