uibutton增加漸變色后title和image不顯示問題

uibutton增加漸變色的時候一定要注意不能直接addsublayer,這樣會導致新增加的layer在最上面,會遮擋title和image
應該使用insertSublayer將漸變色的layer增加在最下層
'''
[_adoptAnswerTagBtn.layer insertSublayer:self.gradientLayer atIndex:0];
'''
這時title就會顯示出來,但,image還是會被隱藏,我猜測應該是image的層級比較靠后一些吧,具體是不是沒有驗證,
我強行將imageview的優(yōu)先級提到最前面,使用bringSubviewToFront。
具體代碼如下:
'''

  • (UIButton *)adoptAnswerTagBtn
    {
    if(!_adoptAnswerTagBtn) {
    _adoptAnswerTagBtn = [UIButton buttonWithType:UIButtonTypeCustom];
    _adoptAnswerTagBtn.titleLabel.font = [UIFont systemFontOfSize:14];
    [_adoptAnswerTagBtn setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
    [_adoptAnswerTagBtn addTarget:self action:@selector(adoptAnswerBtnClick) forControlEvents:UIControlEventTouchUpInside];
    _adoptAnswerTagBtn.layer.cornerRadius = 11.5;
    _adoptAnswerTagBtn.layer.masksToBounds = YES;
    _adoptAnswerTagBtn.size = CGSizeMake(64, 23);
    self.gradientLayer.frame = _adoptAnswerTagBtn.bounds;
    [_adoptAnswerTagBtn.layer insertSublayer:self.gradientLayer atIndex:0];
    [_adoptAnswerTagBtn setImage:[UIImage imageNamed:@"ef_fundbar_answeradopt_white"] forState:UIControlStateNormal];
    [_adoptAnswerTagBtn setTitle:@"采納" forState:UIControlStateNormal];
    [_adoptAnswerTagBtn bringSubviewToFront:_adoptAnswerTagBtn.imageView];
    _adoptAnswerTagBtn.hidden = YES;
    }
    return _adoptAnswerTagBtn;
    }
  • (CAGradientLayer *)gradientLayer {
    if (!_gradientLayer) {
    _gradientLayer = [CAGradientLayer layer];
    _gradientLayer.colors = @[(id)[RGB_HEX(0xE8CC94) CGColor],
    (id)[RGB_HEX(0xD6AC6C) CGColor]
    ];
    _gradientLayer.startPoint = CGPointMake(0, 0);
    _gradientLayer.endPoint = CGPointMake(1.0, 1.0);
    }
    return _gradientLayer;
    }
    '''
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容