ビュー コントローラー内にカスタム スタイルの UIButton があります。これは、UIButton を CAGradientLayer でカスタマイズし、角を丸め、レイヤーの周りに境界線を追加することによって実現されます。
これらのボタンのルック アンド フィールが気に入っています。また、事前にレンダリングされた画像を使用しなくても、非常に簡単に実現できます。しかし、私には 1 つの問題があります。このようなボタンは、UIButton のようにタッチに反応しません。たとえば、典型的な角丸長方形のボタンは、タップすると青く強調表示されますが、私のボタンはそうではありません。
CAGradientLayer
以下のコードに従って UIButton でカスタム背景を使用している場合、「タッチ ハイライト ボタン」動作を実現するにはどうすればよいですか?
ご意見ありがとうございます。
+(void)addLinearGradientToView:(UIView*)view TopColor:(UIColor*)topColor BottomColor:(UIColor*)bottomColor
{
for(CALayer* layer in view.layer.sublayers)
{
if ([layer isKindOfClass:[CAGradientLayer class]])
{
[layer removeFromSuperlayer];
}
}
CAGradientLayer* gradientLayer = [CAGradientLayer layer];
//top down gradient
gradientLayer.startPoint = CGPointMake(0.5, 0);
gradientLayer.endPoint = CGPointMake(0.5,1);
gradientLayer.frame = view.bounds;
gradientLayer.colors = [NSArray arrayWithObjects:(id)[topColor CGColor], (id)[bottomColor CGColor], nil];
[view.layer insertSublayer:gradientLayer atIndex:0];
}