背景として透明なpngを使用しようとしましたが、成功しませんでした。どうすれば解決できますか? thz。
Inspectorウィンドウ(Interface Builder)でTypeをCustomに変更するとうまくいきました。
透明なボタンを作成するには(画像を使用せずに):
- (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;
}
これも良いものです:
[button.layer setBackgroundColor:[UIColor colorWithWhite:0.0 alpha:0.5].CGColor];
まず、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];
IBなし:
UIButton *b = [[UIButton buttonWithType:UIButtonTypeCustom] retain];
ボタンのタイプをIBのカスタムタイプに変更します。デフォルトでは、背景がclearColorに設定されています。
背景が透明になる前に丸みを帯びた四角形のUIButtonが必要な場合は、背景色をclearColorに変更しても役に立たないと思います。それから私はどちらかを提案します:
UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(50, 50, 50, 50)];
[button setTitle:@"Title" forState:UIControlStateNormal];