web-dev-qa-db-fra.com

Comment faire de l'arrière-plan uibutton transparent?

J'ai essayé d'utiliser un PNG transparent comme fond, mais pas le succès. Comment puis-je le résoudre ? Thz.

26
Tattat

Changer le type à la coutume dans la fenêtre de l'inspecteur (Builder d'interface) a fonctionné pour moi.

38
DineshNS

Pour créer un bouton transparent (sans utiliser d'image):

- (void)viewDidLoad
{
    [super viewDidLoad];

    CALayer *layer = <your button>.layer;
    layer.backgroundColor = [[UIColor clearColor] CGColor];
    layer.borderColor = [[UIColor darkGrayColor] CGColor];
    layer.cornerRadius = 8.0f;
    layer.borderWidth = 1.0f;
}
21
David H

C'est un bon aussi:

[button.layer setBackgroundColor:[UIColor colorWithWhite:0.0 alpha:0.5].CGColor];
7
ogaihtorecic

d'abord, ajouter un cadre QuartzCore dans votre projet

Deuxièmement, ajoutez ceci à l'en-tête

#import <QuartzCore/QuartzCore.h>

CAGradientLayer *gradientLayer = [CAGradientLayer layer];
UIButton *aButton = [UIButton buttonWithType:UIButtonTypeCustom];
[aButton setFrame:CGRectMake(0, 0, 75, 37)];
[gradientLayer setFrame:aButton.frame];
[aButton.layer addSublayer:gradientLayer];

par exemple, bouton de gradient rouge (mélange de couleur

[gradientLayer setColors:[NSArray arrayWithObjects:(id)[UIColor colorWithRed:0.841 green:0.566 blue:0.566 alpha:1.0].CGColor, (id)[UIColor colorWithRed:0.75 green:0.341 blue:0.345 alpha:1.0].CGColor, (id)[UIColor colorWithRed:0.592 green:0.0 blue:0.0 alpha:1.0].CGColor, (id)[UIColor colorWithRed:0.592 green:0.0 blue:0.0 alpha:1.0].CGColor, nil]];
[aButton addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside];
3
Yoon Lee

Sans IB:

UIButton *b = [[UIButton buttonWithType:UIButtonTypeCustom] retain];
1
fabb

Changez le type de bouton sur la personnalisation de IB - il a défini par défaut l'arrière-plan sur le ClearColor.

Si vous devez avoir le rectostéron arrondi avant son antécédent est transparent, je suppose que je suppose que la couleur de fond est ClearColor ne vous aidera pas. Alors je suggérerais non plus:

  1. Retirez-le de la vue et remplacez-le par un autre bouton qui a le fond transparent pour E.g. [.____]
     UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(50, 50, 50, 50)];
    [button setTitle:@"Title" forState:UIControlStateNormal];
  2. N'utilisez pas de pommes uibutton, de sous-classe uicontrol et dessinez-la vous-même :)
0
krasnyk