iOS开发Tips-07

2020-11-06  本文已影响0人  田陌允

按钮设置渐变和文字颜色

// 按钮设置渐变和文字颜色
+ (id)dc_setGradientLayerColors:(UIButton *)btn AndSetStartColor:(UIColor *)startColor SetEndColor:(UIColor *)endColor setTitleColor:(UIColor *)titleColor forState:(UIControlState)state
{
    CAGradientLayer *gradientLayer = [CAGradientLayer layer];
    [gradientLayer setColors:@[(id)[startColor CGColor], (id)[endColor CGColor]]];
    gradientLayer.startPoint = CGPointMake(0, 0);
    gradientLayer.endPoint = CGPointMake(1, 0);
    gradientLayer.locations = @[@(0), @(1.0)];
    gradientLayer.frame = CGRectMake(0, 0, btn.size.width, btn.size.height);
    // 注意,这边不能用addSublayer的方法,不然会覆盖掉文字和图片
    [btn.layer insertSublayer:gradientLayer atIndex:0];
    // 用insertSublayer还是会覆盖图片,可以将图片图层强制提到最上方的方法解决
    /*
    [_adoptAnswerTagBtn setImage:[UIImage imageNamed:@"ef_fundbar_answeradopt_white"] forState:UIControlStateNormal];
    [_adoptAnswerTagBtn setTitle:@"采纳" forState:UIControlStateNormal];
    [_adoptAnswerTagBtn bringSubviewToFront:_adoptAnswerTagBtn.imageView];
    */
    
    [btn setTitleColor:titleColor forState:state];

    return btn;
}

看完如果觉得不错,

留个赞再走。
上一篇 下一篇

猜你喜欢

热点阅读