zoukankan      html  css  js  c++  java
  • 使用uibesizerpath + Cashaplayer画椭圆

    使用uibesizerpath
    Cashaplayer
    画椭圆:

    + (void)drawOvalAnimSourceView:(UIView *)sourceView {
        
        //view是曲线的背景view
        
        UIView *view = [[UIView alloc]initWithFrame:sourceView.bounds];
        
        view.backgroundColor = [UIColor clearColor];
        view.transform = CGAffineTransformMakeRotation(-M_PI_2*0.5);
        [sourceView addSubview:view];
        
        
        //第一、UIBezierPath绘制线段
        
        UIBezierPath *firstPath = [UIBezierPath bezierPathWithOvalInRect:sourceView.bounds];
        
    
        //第二、UIBezierPath和CAShapeLayer关联
        
        CAShapeLayer *lineLayer2 = [CAShapeLayer layer];
        
        lineLayer2.frame = sourceView.bounds;
        
        lineLayer2.fillColor = [UIColor clearColor].CGColor;
        
        lineLayer2.path = firstPath.CGPath;
        
        lineLayer2.strokeColor = [UIColor redColor].CGColor;
        lineLayer2.lineWidth = 10;
        
        
        //第三,动画
        
        CABasicAnimation *ani = [CABasicAnimation animationWithKeyPath:NSStringFromSelector(@selector(strokeEnd))];
        
        ani.fromValue = @0;
        
        ani.toValue = @1;
        
        ani.duration = 2.5; // 2快 3慢
        
        [lineLayer2 addAnimation:ani forKey:NSStringFromSelector(@selector(strokeEnd))];
        
        [view.layer addSublayer:lineLayer2];
        
        
        UIImageView *hand = [[UIImageView alloc] initWithFrame:CGRectMake(0, 500, 100, 100)];
    
        hand.image = [UIImage imageNamed:@"img_help_doubletap_00034"];
    
        [view.layer addSublayer:hand.layer];
        
        
        UIBezierPath *aniPath = [UIBezierPath bezierPathWithOvalInRect:sourceView.bounds];
        
        CAKeyframeAnimation *animation = [CAKeyframeAnimation animation];
        animation.keyPath = @"position";
        animation.duration = 3;
        animation.repeatCount = 1;//CGFLOAT_MAX;
        animation.path = aniPath.CGPath;
        animation.removedOnCompletion = NO;
        [hand.layer addAnimation:animation forKey:@"slide"];
        
    }
  • 相关阅读:
    Redis原理篇
    Redis基础
    CentOS7 Redis5.0.5环境搭建
    通用后台管理系统(10)项目打包、修改配置文件、项目开源地址
    通用后台管理系统(9)-编写首页接口、实现、控制器
    通用后台管理系统(8)-编写登入控制器
    生成常用的msf
    badusb资料收集
    后渗透之meterpreter攻略
    linux命令备忘录
  • 原文地址:https://www.cnblogs.com/tufei7/p/9831647.html
Copyright © 2011-2022 走看看