美文网首页
视图的颜色渐变效果实现

视图的颜色渐变效果实现

作者: 沙长健 | 来源:发表于2016-08-14 22:42 被阅读73次

    CAGradientLayer是用来生成两种或更多颜色平滑渐变的。用Core Graphics复制一个CAGradientLayer并将内容绘制到一个普通图层的寄宿图也是有可能的,但是CAGradientLayer的真正好处在于绘制使用了硬件加速。
    基础渐变
    我们将从一个简单的红变蓝的对角线渐变开始(见清单6.6).这些渐变色彩放在一个数组中,并赋给colors属性。这个数组成员接受CGColorRef类型的值(并不是从NSObject派生而来),所以我们要用通过bridge转换以确保编译正常。

    CAGradientLayer也有startPoint和endPoint属性,他们决定了渐变的方向。这两个参数是以单位坐标系进行的定义,所以左上角坐标是{0, 0},右下角坐标是{1, 1}。代码运行结果如图6.6

    清单6.6 简单的两种颜色的对角线渐变

    @interface ViewController ()
    @property (nonatomic, weak) IBOutlet UIView *containerView;
    @end
    @implementation ViewController
    - (void)viewDidLoad
    {
      [super viewDidLoad];
      
      //create gradient layer and add it to our container view
      CAGradientLayer *gradientLayer = [CAGradientLayer layer];
      gradientLayer.frame = self.containerView.bounds;
      [self.containerView.layer addSublayer:gradientLayer];
      
      //set gradient colors
      gradientLayer.colors = @[(__bridge id)[UIColor redColor].CGColor, (__bridge id)[UIColor blueColor].CGColor];
     
      //set gradient start and end points
      gradientLayer.startPoint = CGPointMake(0, 0);
      gradientLayer.endPoint = CGPointMake(1, 1);
    }
    @end
    

    相关文章

      网友评论

          本文标题:视图的颜色渐变效果实现

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