QuartzCoreを使用してボタンの色を変更できるカスタムUIButtonを作成するメソッドがあります。しかし、タッチされてもボタンは強調表示されません。カスタムUIButtonがタッチされても強調表示されない
- (UIButton *)makeHeaderButton {
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
UIFont *textFont = [UIFont boldSystemFontOfSize:12];
UIColor *textColor = [UIColor colorWithRed:80/255.0 green:109/255.0 blue:145/255.0 alpha:1.0];
UIColor *backgroundColor = [UIColor colorWithRed:250/255.0 green:250/255.0 blue:250/255.0 alpha:1.0];
[button setTitleColor:textColor forState:UIControlStateNormal];
button.titleLabel.font = textFont;
button.autoresizesSubviews = YES;
button.layer.cornerRadius = 8;
button.layer.borderWidth = 1;
// next 2 properties set using QuartzCore class, no other way to set button colors
button.layer.borderColor = [UIColor grayColor].CGColor;
button.layer.backgroundColor = backgroundColor.CGColor;
button.clipsToBounds = YES;
return button;
}
これらのボタンを通常の丸いボタンのようにハイライト表示させるにはどうすればよいですか?あなたのコードで
だけ作るように見えますタイトルがフェードアウトしていきます。ボタンがタッチされると、ボタンの背景が青色に点滅します。 – Bob
@Bobいつでもマニュアルの強調表示を設定できます。たとえば、イベントonTouchDown(またはそれが何であれ)に登録してから、実装で 'button.layer.backgroundColor = [UIColor BlueColor];のようにすると、' onTouchUp'が色を設定に戻します。 – Garrett
Wowこれは複雑になりつつあります。私がしたいのは、カスタム背景色を持つRoundRectボタンを作ることだけです。確かにこれを行う簡単な方法があります。 – Bob