button渐变色 ios,iPhone iOS如何在按钮的文本或图像下添加线性渐变到UIButton?

I'm working on creating fancy looking UIbuttons by adding linear gradient to the button. However I'm not sure at which index I need to add the gradient. The code that I have currently places the gradient over the image/text.

How can I insert a sublayer to a UIButton under the text/image sublayer? It is important for me to keep the text and the image of a button visible!

+(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];

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 addSublayer:gradientLayer];

if(view.layer.sublayers.count>0)

{

[view.layer insertSublayer:gradientLayer atIndex:view.layer.sublayers.count-2];

}else {

[view.layer addSublayer:gradientLayer];

}

}

解决方案

Add it to the layer of your custom button:

CAGradientLayer *gradientLayer = [CAGradientLayer layer];

gradientLayer.frame = customButton.layer.bounds;

gradientLayer.colors = [NSArray arrayWithObjects:

(id)[UIColor colorWithWhite:1.0f alpha:0.1f].CGColor,

(id)[UIColor colorWithWhite:0.4f alpha:0.5f].CGColor,

nil];

gradientLayer.locations = [NSArray arrayWithObjects:

[NSNumber numberWithFloat:0.0f],

[NSNumber numberWithFloat:1.0f],

nil];

gradientLayer.cornerRadius = customButton.layer.cornerRadius;

[customButton.layer addSublayer:gradientLayer];

where customButton is your custom UIButton.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值