视图背景颜色渐变、画圆、动画

原创 2016年06月01日 14:20:05

代码:
在继承于UIView中使用

// 生产一个圆形路径并设置成遮罩
        self.layer.mask = [self produceCircleShapeLayer];
+ (Class)layerClass
{
    return [CAGradientLayer class];
}

把颜色添加到数组里面

- (void)setupMulticolor
{
    CAGradientLayer *gradientLayer = (id)[self layer];

    // 设置颜色线条分布的方向
    gradientLayer.startPoint = CGPointMake(0.0, 0.0);
    gradientLayer.endPoint = CGPointMake(1.0, 0.0);

    // 创建颜色数组
    NSMutableArray *colors = [NSMutableArray array];
    for (NSInteger hue = 0; hue <= 360; hue += 10) {
        [colors addObject:(id)[UIColor colorWithHue:1.0*hue/360.0 saturation:1.0 brightness:1.0 alpha:1.0].CGColor];
    }

    [gradientLayer setColors:[NSArray arrayWithArray:colors]];
}

画一个圆代码:

- (CAShapeLayer *)produceCircleShapeLayer
{
    // 生产出一个圆的路径
    CGPoint circleCenter = CGPointMake(CGRectGetMidX(self.bounds), CGRectGetMidY(self.bounds));
    CGFloat circleRadius = self.bounds.size.width/2.0 - 40;

    UIBezierPath *circlePath = [UIBezierPath bezierPathWithArcCenter:circleCenter
                                                              radius:circleRadius
                                                          startAngle:M_PI
                                                            endAngle:-M_PI
                                                           clockwise:NO];

    // 生产出一个圆形路径的Layer
    CAShapeLayer *shapeLayer = [CAShapeLayer layer];
    shapeLayer.path = circlePath.CGPath;
    shapeLayer.strokeColor = [UIColor lightGrayColor].CGColor;
    shapeLayer.fillColor = [[UIColor clearColor] CGColor];
    shapeLayer.lineWidth = 2;

    // 可以设置出圆的完整性
    shapeLayer.strokeStart = 0;
    shapeLayer.strokeEnd = 1.0;

    return shapeLayer;
}

动画旋转代码:通过改变transform.rotation.y来改变动画的方向
transform.rotation.y纵轴上旋转
transform.rotation.x横轴上旋转
transform.rotation.z围绕着z纵轴旋转

- (void)startAnimation
{
    CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"transform.rotation.y"];
    animation.duration = 5;
    animation.repeatCount = MAXFLOAT;
    animation.fromValue = [NSNumber numberWithDouble:0];
    animation.toValue = [NSNumber numberWithDouble:M_PI*2];
    [self.layer addAnimation:animation forKey:@"transform"];
}

当动画结束时调用:

- (void)endAnimation
{
    [self.layer removeAllAnimations];
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

iOS实现一个颜色渐变的弧形进度条

在Github上看到一些进度条的功能,都是通过Core Graph来实现。无所谓正确与否,但是开发效率明显就差很多了,而且运行效率还是值得考究的。其实使用苹果提供的Core Animation能够非常...

背景颜色渐变

  • 2014年08月19日 22:57
  • 730B
  • 下载

Android GradientDrawable类的详解,设置activity的背景颜色渐变效果

GradientDrawable 支持使用渐变色来绘制图形,通常可以用作Button或是背景图形。 GradientDrawable允许指定绘制图形的种类:LINE,OVAL,RECTANGLE...

背景颜色渐变

  • 2012年11月14日 13:00
  • 4KB
  • 下载

ViewPager渲染背景颜色渐变(引导页)--第三方开源--ColorAnimationView

完整项目 效果图: 使用到的工具类: package com.zhangli.viewpager; import android.animation.Animator; import andro...

Android GradientDrawable类的详解,设置activity的背景颜色渐变效果

看到这个例子的标题RoundRects,我的第一感觉是介绍RoundRectShape, 打开例子看了代码却是使用GradientDrawable来实现的。 GradientDrawable 支...

Android GradientDrawable类的详解,设置activity的背景颜色渐变效果

转自:http://www.imobilebbs.com/wordpress/?p=1620 GradientDrawable 支持使用渐变色来绘制图形,通常可以用作Button或是背景图形...

Android特效专辑(二)——ViewPager渲染背景颜色渐变(引导页)

标签: androidviewpager开源app 2016-01-03 12:23 1317人阅读 评论(0) 收藏 举报  分类: Android(110)  ...

Android开发——实现背景颜色渐变效果

前言在Android开发当中,我们肯定会接到有业务需求是:让APP的某一些背景颜色产生渐变效果。那我们应该怎么去实现呢?接下就是我要为大家介绍的了。效果图 这是需求要达到的效果。接下来说一下是怎么实...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:视图背景颜色渐变、画圆、动画
举报原因:
原因补充:

(最多只允许输入30个字)