objective 动画

-(void)animo10{

    //1 创建并指定要修改的属性
    // KeyPath:CAlayer的属性名, 不是所有的属性都可以, 只有在头文件中出现animatable的属性才可以, 可以修改属性的属性, 例如:bounds.size
    // CALayer
    CABasicAnimation *basic = [CABasicAnimation animationWithKeyPath:@"bounds"];
    [basic setDuration:2];
    //2 修改属性值
    basic.fromValue = [NSValue valueWithCGRect:CGRectMake(0, 0, self.animoView.bounds.size.width, self.animoView.bounds.size.height)];
    basic.toValue = [NSValue valueWithCGRect:CGRectMake(0, 0, 200, 200)];

    CAKeyframeAnimation *keyFrame = [CAKeyframeAnimation animationWithKeyPath:@"backgroundColor"];
    [keyFrame setDuration:5];
    keyFrame.values = @[(id)[UIColor redColor].CGColor, (id)[UIColor orangeColor].CGColor, (id)[UIColor yellowColor].CGColor, (id)[UIColor greenColor].CGColor, (id)[UIColor blueColor].CGColor];
    //keyTimes中的第一个值是0, 不能修改
    keyFrame.keyTimes = @[@(0.3), @(0.5), @(0.6), @(0.7), @(0.9)];

    // 创建
    //当group动画的时长 > 组中所有动画的最长时长, 动画的时长以组中最长的时长为准
    //当group动画的时长 < 组中所有动画的最长时长, 动画的时长以group的时长为准
    //最合适: group的时长 = 组中所有动画的最长时长

    CAAnimationGroup *group = [CAAnimationGroup animation];
    [group setDuration:10];

    //设置组动画
    group.animations = @[basic, keyFrame];

    //添加动画
    [self.animoView.layer addAnimation:group forKey:nil];
}
-(void)animo9{
    //1 创建
    CATransition *transition = [CATransition animation];
    [transition setDuration:2];
    //2 设置过度样式
    transition.type = kCATransitionReveal;//控制样式
    transition.subtype = kCATransitionFromBottom;//控制方向

    //添加动画
    [self.animoView.layer addAnimation:transition forKey:nil];
}
-(void)animo8{

    // //1 创建动画
    // CAKeyframeAnimation *keyFrame = [CAKeyframeAnimation animationWithKeyPath:@"bounds"];
    // [keyFrame setDuration:2];
    // //2 修改属性
    // keyFrame.values = @[[NSValue valueWithCGRect:CGRectMake(0, 0, self.animoView.bounds.size.width, self.animoView.bounds.size.height)], [NSValue valueWithCGRect:CGRectMake(0, 0, 250, 250)], [NSValue valueWithCGRect:CGRectMake(0, 0, 300, 300)]];
    // // keyTimes:值代表了出现动画的时刻, 值得范围是0~1, 值必须是递增的, keyTimes和values是一一对应的
    // keyFrame.keyTimes = @[@(0.4), @(0.6), @(1)];
    // //3 添加动画
    // [self.animoView.layer addAnimation:keyFrame forKey:@"keyFrame"];

    CAKeyframeAnimation *keyFrame2 = [CAKeyframeAnimation animationWithKeyPath:@"backgroundColor"];
    [keyFrame2 setDuration:3];
    keyFrame2.values = @[(id)[UIColor redColor].CGColor, (id)[UIColor orangeColor].CGColor, (id)[UIColor yellowColor].CGColor, (id)[UIColor greenColor].CGColor, (id)[UIColor blueColor].CGColor];
    //keyTimes中的第一个值是0, 不能修改
    keyFrame2.keyTimes = @[@(0.3), @(0.5), @(0.6), @(0.7), @(0.9)];
    [self.animoView.layer addAnimation:keyFrame2 forKey:nil];
}
-(void)animo7{

    //1 创建并指定要修改的属性
    // KeyPath:CAlayer的属性名, 不是所有的属性都可以, 只有在头文件中出现animatable的属性才可以, 可以修改属性的属性, 例如:bounds.size
    // CALayer
    CABasicAnimation *basic = [CABasicAnimation animationWithKeyPath:@"bounds"];
    [basic setDuration:0.2];
    [basic setRepeatCount:100];
    //2 修改属性值
    basic.fromValue = [NSValue valueWithCGRect:CGRectMake(0, 0, self.animoView.bounds.size.width, self.animoView.bounds.size.height)];
    basic.toValue = [NSValue valueWithCGRect:CGRectMake(0, 0, 200, 200)];
    // basic.byValue =
    //3 添加动画
    //key做区分动画用
    [self.animoView.layer addAnimation:basic forKey:@"changColor"];
}
-(void)animo6{

    self.animoView.layer.cornerRadius = 50;
    //设置圆角, 参数是内切圆的半径, 若想画一个圆, 前提是view必须是正方形, 参数应该是view边长的一半
    self.animoView.layer.borderWidth = 1;//设置描边的宽度
    self.animoView.layer.borderColor = [UIColor orangeColor].CGColor; //设置描边的颜色(UIView上的颜色使用的是UIColor, CALayer上使用的颜色是CGColor)
    self.animoView.layer.shadowOffset = CGSizeMake(50, 100); //设置阴影的偏移量 width影响水平偏移(正右负左), height影响垂直偏移(正下负上)
    self.animoView.layer.shadowColor = [UIColor grayColor].CGColor; //阴影的偏移的颜色
    self.animoView.layer.shadowOpacity = 1; //阴影的不透明度, 取值范围(0 ~ 1), 默认是0, 就是透明的
}
-(void)animo5{

    CAShapeLayer *layer = [[CAShapeLayer alloc] init]; //新建layer
    UIBezierPath *path = [UIBezierPath bezierPathWithRect:CGRectMake(100, 100, 100, 100)];//初始化bezier曲线--矩形
    layer.path = path.CGPath; //在layer上赋予曲线的路径
    layer.fillColor = [[UIColor clearColor] CGColor]; //layer的填充颜色
    layer.strokeColor = [[UIColor blackColor] CGColor]; //layer的边框颜色
    [self.view.layer addSublayer:layer]; //添加layer
}
-(void)animo4{

    //    layer 动画
    //绕z轴旋转的动画
    CABasicAnimation * ani = [CABasicAnimation animationWithKeyPath:@"transform"];
    //从0度开始
    ani.fromValue = @0;
    //旋转到180度
    ani.toValue = [NSNumber numberWithFloat:M_PI];
    //时间2S
    ani.duration = 2;
    //设置为z轴旋转
    ani.valueFunction = [CAValueFunction functionWithName:kCAValueFunctionRotateY];
    //执行动画
    [self.animoView.layer addAnimation:ani forKey:@""];
}
-(void)animo3{
    //Block 动画
    //    [UIView animateWithDuration:2 animations:^{
    //        
    //    }];
    //    
    //    [UIView animateWithDuration:2 animations:^{
    //        
    //    } completion:^(BOOL finished) {
    //        
    //    }];

    [UIView animateWithDuration:2 delay:1 options:UIViewAnimationOptionCurveEaseInOut animations:^{
        [UIView setAnimationRepeatCount:100];
        [UIView setAnimationRepeatAutoreverses:YES];
        [UIView setAnimationCurve:UIViewAnimationCurveLinear];  //匀速

        //圆角 与 边框
        self.animoView.layer.cornerRadius = 50;
        self.animoView.layer.masksToBounds = YES;
        self.animoView.layer.borderColor = [[UIColor blackColor] CGColor];
        self.animoView.layer.borderWidth = 5;


        //        //shadow 阴影
        //        self.animoView.layer.shadowColor = [[UIColor greenColor] CGColor];
        //        self.animoView.layer.shadowOpacity = 1.0;
        //        self.animoView.layer.shadowRadius = 20.0;
        //        self.animoView.layer.shadowOffset = CGSizeMake(100, 100);


        self.animoView.center = CGPointMake(200, 300);


    } completion:^(BOOL finished) {
        self.animoView.center = CGPointMake(150 , 150);
        [UIView setAnimationsEnabled:YES];
    }];
}
-(void)animo2{
    //UIViewTransition

    [UIView beginAnimations:@"过渡动画" context:nil];
    [UIView setAnimationDuration:2];
    [UIView setAnimationRepeatCount:50];

    //    UIViewAnimationTransitionNone,
    //    UIViewAnimationTransitionFlipFromLeft,
    //    UIViewAnimationTransitionFlipFromRight,
    //    UIViewAnimationTransitionCurlUp,
    //    UIViewAnimationTransitionCurlDown,

    [UIView setAnimationTransition:4 forView:self.animoView cache:YES];

    [UIView commitAnimations];
}
-(void)animo1{

    //1、配置动画
    [UIView beginAnimations:@"第一个动画" context:nil];
    [UIView setAnimationDuration:2];
    [UIView setAnimationDelay:1];
    [UIView setAnimationDelegate:self];
    [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
    [UIView setAnimationRepeatCount:10];
    [UIView setAnimationRepeatAutoreverses:YES];

    //2、改变要执行动画的视图的 尺寸、位置或者颜色
    self.animoView.frame = CGRectMake(200, 200, 50, 50);
    self.animoView.backgroundColor = [UIColor colorWithRed:arc4random()%256/255.0 green:arc4random()%256/255.0 blue:arc4random()%256/255.0 alpha:1];

    //3、确认动画并执行
    [UIView commitAnimations];
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值