試しtintColor = [UIColor redColor]
てみましたが、ボタンが押されたときに期待される色しか表示されません。
タイプ UIButtonTypeRoundedRect の UIButtons の配色では、同じ質問に答えますが、それを実装するには画像が必要です。画像なしでそれを行う方法はありますか?
覚えておいてください...画像はありません!
UIImage
からを生成するメソッドを作成しUIColor
、返された画像をボタンの背景として設定できます。次に例を示します。
- (UIImage *)imageWithColor:(UIColor *)color {
CGRect rect = CGRectMake(0, 0, 1, 1);
UIGraphicsBeginImageContext(rect.size);
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetFillColorWithColor(context, [color CGColor]);
CGContextFillRect(context, rect);
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return image;
}
UIImage *image = [self imageWithColor:[UIColor colorWithRed:151.0/255.0
green:36.0/255.0
blue:40.0/255.0
alpha:1.0]];
[self.button setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
[self.button setBackgroundImage:image forState:UIControlStateNormal];
self.button.layer.cornerRadius = 6.0;
self.button.layer.borderWidth = 1.0;
self.button.layer.borderColor = [UIColor darkGrayColor].CGColor;
self.button.clipsToBounds = YES;
これを使って私は得る
これが私がそれを行う方法です:
ボタンの画像をインターネットからダウンロードするか、自分で画像を作成して、希望どおりに見えるようにします。これには Photoshop が最適かもしれません。背景が透明であることを確認し、.png として保存します。次に、それを xcode プロジェクトに追加します。ボタンを作成するには:
UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
[btn setBackgroundImage:[UIImage imageNamed:@"yourImage.png"] forState:UIControlStateNormal];
[btn addTarget:self action:@selector(buttonAction)
forControlEvents:UIControlEventTouchDown];
[btn setTitle:@"Use it!" forState:UIControlStateNormal];
btn.contentHorizontalAlignment = UIControlContentHorizontalAlignmentCenter;
btn.titleLabel.font = [UIFont systemFontOfSize:20];
btn.frame = CGRectMake(position and size of your button);
[self.view addSubview:btn];
yourImage.png は、画像の名前に置き換える必要があります。
これbuttonAction
は、ボタンがタップされたときにボタンが実行するアクションです。追加するだけの場合:
- (void) buttonAction
{
}
ファイルのどこにいても、これらの括弧の間に追加したものはすべて実行されます。
ボタンのサイズが のサイズと同じであるCGRect
ことを確認して、引き伸ばされたり、見たくないものにならないようにします。
ご不明な点がございましたら、お気軽にお問い合わせください。
これがあなたを助けたことを願っています