web-dev-qa-db-ja.com

UIButtonの背景を透明にする方法は?

背景として透明なpngを使用しようとしましたが、成功しませんでした。どうすれば解決できますか? thz。

26
Tattat

Inspectorウィンドウ(Interface Builder)でTypeをCustomに変更するとうまくいきました。

38
DineshNS

透明なボタンを作成するには(画像を使用せずに):

- (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

これも良いものです:

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

まず、QuartzCoreフレームワークをプロジェクトに追加します

2番目、これをヘッダーに追加

#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];

たとえば、赤いグラデーションボタン(色の混合)

[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

IBなし:

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

ボタンのタイプをIBのカスタムタイプに変更します。デフォルトでは、背景がclearColorに設定されています。

背景が透明になる前に丸みを帯びた四角形のUIButtonが必要な場合は、背景色をclearColorに変更しても役に立たないと思います。それから私はどちらかを提案します:

  1. それをビューから削除して、透明な背景を持つ他のボタンで置き換えます。例:
     UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(50, 50, 50, 50)];
    [button setTitle:@"Title" forState:UIControlStateNormal];
  2. アップルのUIButtonを使用せず、UIControlをサブクラス化して自分で描画する:)
0
krasnyk