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

原创 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 实现背景颜色渐变的方式

iOS里面的背景颜色实现渐变的方式有两种,第一种就是给一个渐变的图片做背景,当然这样有很大的局限性,比如我现在就需要根据项目需求要动态的改变渐变背景色。 这样首先想到quartz 2D 这里的知识进...

iOS CABasicAnimation CAAnimationGroup 对颜色做连续渐变动画

http://blog.sina.com.cn/s/blog_969096f10101hre7.html //此动画效果分三个阶段 程实原创 //1、从白色变为灰色 程实原创 ...

iOS 之使用CAShapeLayer中的CAGradientLayer实现圆环的颜色渐变

本文转载自:http://blog.csdn.net/zhoutao198712/article/details/20864143 在Github上看到一些进度条的功能,都是通过Core G...

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

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

背景颜色渐变

  • 2014-08-19 22:57
  • 730B
  • 下载

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

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

背景颜色渐变

CSS实现网页背景颜色渐变的效果。

来自:http://hi.baidu.com/%EC%BD%EC%BB%C2%FB%D1%D3/blog/item/28faf601af300ffe08fa939a.html 为了显示一个渐变而专门制...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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