iOS 在reload時候 CAGradientLayer 閃動修改

正常操作:
開始的時候直接在 UIView 上 Add 一個Layer

[self.layer addSublayer:self.vipPriceGradientLayer];
        
- (CAGradientLayer *)vipPriceGradientLayer
{
    if (!_vipPriceGradientLayer) {
        CAGradientLayer *gl = [CAGradientLayer layer];
        gl.startPoint = CGPointMake(0.62, 0);
        gl.endPoint = CGPointMake(0.62, 1);
        gl.colors = @[(__bridge id)[UIColor colorWithHexString:@"#FEE5B6"].CGColor, (__bridge id)[UIColor colorWithHexString:@"#FED28B"].CGColor];
        gl.locations = @[@(0), @(1.0f)];
        gl.cornerRadius = XXBPtScale(5);
        _vipPriceGradientLayer = gl;
    }
    return _vipPriceGradientLayer;
}

解決方法:

+ (Class)layerClass
{
    return [CAGradientLayer class];
}

- (instancetype)init
{
    self = [super init];
    if (self) {
        
        CAGradientLayer *gl = (CAGradientLayer *)self.layer;
        gl.startPoint = CGPointMake(0.62, 0);
        gl.endPoint = CGPointMake(0.62, 1);
        gl.colors = @[(__bridge id)[UIColor colorWithHexString:@"#FEE5B6"].CGColor, (__bridge id)[UIColor colorWithHexString:@"#FED28B"].CGColor];
        gl.locations = @[@(0), @(1.0f)];
        gl.cornerRadius = 5;
        
        self.frame = CGRectMake(0, 0, 0,  20);
        
    }
    return self;
}

轉自(感謝大佬):https://duxinfeng.com/post/解決-CAGradientLayer-閃爍問題

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容