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;
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];
}
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é".
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;
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
UIButton également avec le type custom
, nous pouvons le définir dans xcode
as-
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} _
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
Version rapide
extension UIButton {
override public var highlighted: Bool {
didSet {
// clear background color when selected
self.layer.backgroundColor = .None
}
}
}