美文网首页
iOS 要实现渐变的怪现象

iOS 要实现渐变的怪现象

作者: LV大树 | 来源:发表于2021-04-29 18:40 被阅读0次

众所周知的原因,ios要想实现渐变的话,需要先知道渐变容器的尺寸和设置渐变layer的大小。

由于我们经常会使用到动态计算高度。这个时候就不好处理了。

今天,第一次体会到, layoutIfNeeded的威力。

当Masonry 布局完毕后,调用上面的layoutIfNeeded。则可以轻松得到布局控件的frame,从而为我们添加渐变提供先置条件。
解决问题。

-(void)layoutSubviews{
    NSLog(@"%s",__func__);
    return;

    if (self.greatAgent) {
        if (bgViewLayer) {
            [bgViewLayer removeFromSuperlayer];
        }
        self.bgView.backgroundColor = [UIColor clearColor];
        CAGradientLayer *gl = [CAGradientLayer layer];
        gl.frame = CGRectMake(0, 0, mScreenWidth, mScreenHeight);// self.bgView.bounds;// self.agentTagsBGView.bounds;// CGRectMake(96,101,189,18);
        gl.startPoint = CGPointMake(0, 0);
        gl.endPoint = CGPointMake(0, 1);
        gl.colors = @[(__bridge id)HexRGB(0xF9F0E4).CGColor,(__bridge id)HexRGB(0xEED9B8).CGColor];
        gl.locations = @[@(0), @(1.0f)];
        bgViewLayer = gl;
        [self.bgView.layer addSublayer:bgViewLayer];
        self.bgView.layer.cornerRadius = 8;
        self.bgView.layer.masksToBounds = YES;
    }else{
        self.bgView.backgroundColor = [UIColor whiteColor];
    }

}

此乃关键,有兴趣详细了解这个api吧。

    [self layoutIfNeeded];

后续:还是有bug。不过可以先给一个大概的尺寸。

///////////////
书接上一会
目前使用延时
听说masonry布局不是立即生效,涉及到runloop?
所以最后使用了延时处理。结果OK。

相关文章

  • iOS 要实现渐变的怪现象

    众所周知的原因,ios要想实现渐变的话,需要先知道渐变容器的尺寸和设置渐变layer的大小。 由于我们经常会使用到...

  • 2019-10-25

    iOS 渐变色 实现渐变色的几种方式: 使用场景:背景渐变 1. 通过CAGradientLayer实现 使用场景...

  • iOS 沿曲线线性渐变的贝塞尔曲线

    更新:换一种思路实现。iOS 沿曲线线性渐变的贝塞尔曲线(改进版) iOS原生的渐变只支持线性的渐变,但有的时候我...

  • iOS实现曲线渐变

    http://sxiaojian.com/2015/11/30/iOS-curve-gradient/ 圆形渐变 ...

  • iOS实现颜色渐变

    我们经常会在UIView添加渐变的背景色。虽然找一张渐变颜色的背景图很方便,但是图片是要占用资源的,同时文件也会变...

  • iOS渐变颜色实现

    在iOS中,每一个可见的控件都有一个layer层。该层控制着控件的绘制和重绘。近期在YY交友项目中有要求使用一个渐...

  • iOS歌词渐变的实现

    QQ音乐听歌时,歌词随着播放进度而不断的填充颜色,这个功能其实很简单. 原理就是重写UILabel的drawRec...

  • iOS 绘制颜色渐变圆环 --- 值得一看

    iOS 绘制颜色渐变圆环 本文主要介绍一种绘制颜色渐变的进度圆环. 先上效果图: 实现思路: CAShapeLay...

  • iOS 快速实现角度渐变

    写在前面: 因项目需求,需要实现类似安卓角度渐变的效果,但iOS中CGGradientRef只支持线性渐变(CGC...

  • 模仿新版QQ导航栏渐变色

    按我知道的,在iOS里,渐变色主要有2种方式实现,CAGradientLayer的线性渐变,Quartz2D的径向...

网友评论

      本文标题:iOS 要实现渐变的怪现象

      本文链接:https://www.haomeiwen.com/subject/qviwrltx.html