IOS控件渐变色实现

一些优秀的APP应用的UI设计都很漂亮,控件的颜色搭配也个性十足,给使用者留下很好的印象,其中一类是一个控件上的色彩不是整体不变的,而是前后异同的,例如:


屏幕快照 2017-01-05 20.39.09.png

屏幕快照 2017-01-05 20.38.57.png

想要让你的控件实现如上图中控件一样的颜色变化,我们需要调用CoreAnimation 里面的一个类:CAGradientLayer

绘制渐变色的代码如下:

//  创建 UIView 用来承载渐变色
    UIView *myView = [[UIView alloc] initWithFrame:CGRectMake(100, 100, 50, 200)];
    [self.view addSubview:myView];
    
 //  创建 CAGradientLayer 对象
    CAGradientLayer *gradientLayer = [CAGradientLayer layer];
    
    //  设置 gradientLayer 的 Frame
    gradientLayer.frame = myView.bounds;
    
    //  创建渐变色数组,需要转换为CGColor颜色
    gradientLayer.colors = @[(id)[UIColor redColor].CGColor,
                             (id)[UIColor yellowColor].CGColor,
                             (id)[UIColor blueColor].CGColor];
    
    //  设置三种颜色变化点,取值范围 0.0~1.0
    gradientLayer.locations = @[@(0.1f) ,@(0.4f)];
    
    //  设置渐变颜色方向,左上点为(0,0), 右下点为(1,1)
    gradientLayer.startPoint = CGPointMake(0, 0);
    gradientLayer.endPoint = CGPointMake(0, 1);
    
    //  添加渐变色到创建的 UIView 上去
    [myView.layer addSublayer:gradientLayer];

运行工程,得到的结果为:

屏幕快照 2017-01-05 20.50.28.png

途中从上而下实现了红、黄、蓝颜色的变化,当然,想要让自己的控件颜色变得绚丽,还需要对色彩进行调节,这需要多实践和摸索。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,261评论 4 61
  • 目录: 主要绘图框架介绍 CALayer 绘图 贝塞尔曲线-UIBezierPath CALayer子类 补充:i...
    Ryan___阅读 1,714评论 1 9
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,707评论 25 709
  • 曾经有人告诉我,我是孙悟空。可是我不信。我不愿意去做一只猴子,不愿意让一个箍来禁锢我的自由,哪怕他呼风唤雨,法力无...
    琴小雅阅读 1,656评论 0 2
  • 网络是有毒的苹果, 远离网络,我才能变强!!!
    查苏的吉古勒阅读 212评论 0 0