Object-C 里面的animation动画效果,核心动画

#import "CoreAnimationViewController.h"

@interface CoreAnimationViewController ()
@property(nonatomic, strong)UIView *myView;

@end

@implementation CoreAnimationViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    self.view.backgroundColor = [UIColor whiteColor];
    
    self.myView = [[UIView alloc ] initWithFrame:CGRectMake(100, 100, 100, 100)];
    self.myView.backgroundColor = [UIColor cyanColor];
    [self.view addSubview:_myView];
-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{

//用于进行旋转的

CABasicAnimation *base = [CABasicAnimation animationWithKeyPath:@"transform.rotation"];

//设置持续时间
    base.duration = 1;
    //瞬时针旋转从**到**
    base.fromValue = @0;
  base.toValue = @(M_PI_2);
[self.myView.layer addAnimation:base forKey:@"base"];

}

-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
 //用于一系列的颜色变化

CAKeyframeAnimation *color = [CAKeyframeAnimation animationWithKeyPath:@"backgroundColor"];
    color.duration = 10;
    id k1 = (id)[UIColor blueColor].CGColor;
id k2 = (id)[UIColor cyanColor].CGColor;
    id k3 = (id)[UIColor magentaColor].CGColor;
    id k4 = (id)[UIColor grayColor].CGColor;
    color.values = @[k1, k2, k3, k4];
 //添加动画
 [self.myView.layer addAnimation:color forKey:@"color"];

}

-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
 //用于一系列的未知的变化
    CAKeyframeAnimation *position = [CAKeyframeAnimation animationWithKeyPath:@"position"];
    position.duration = 2;
    NSValue *v1 = [NSValue valueWithCGPoint:CGPointMake(0, 0)];
    NSValue *v2 = [NSValue valueWithCGPoint:CGPointMake([UIScreen mainScreen].bounds.size.height - 100, 0)];
    NSValue *v3 = [NSValue valueWithCGPoint:CGPointMake([UIScreen mainScreen].bounds.size.width - 100, [UIScreen mainScreen].bounds.size.height - 100)];
    NSValue *v4 = [NSValue valueWithCGPoint:CGPointMake(0, [UIScreen mainScreen].bounds.size.height - 100)];
    NSValue *v5 = [NSValue valueWithCGPoint:CGPointMake(0, 0)];
    position.values = @[v1,v2,v3,v4,v5];
    position.keyTimes = @[@(0.1), @(0.4), @(0.5), @(0.8), @1];
    [self.myView.layer  addAnimation:position forKey:@"position"];

}

-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
   //动画组
    //组合式的添加动画
    CAAnimationGroup *group = [CAAnimationGroup animation];
    group.duration = 2;
    group.animations = @[color,position];
   [self.myView.layer addAnimation:group forKey:@"group"];

}

-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
  //切换特效
    CATransition *transition = [CATransition animation];
    transition.duration = 2;
 //切换的类型
 transition.type = @"cube";
 //设置子切换类型
  transition.subtype = kCATransitionFromLeft;
    [self.myView.layer addAnimation:transition forKey:@"transition"];

}

时间: 2024-10-08 21:58:56

Object-C 里面的animation动画效果,核心动画的相关文章

基础动画和核心动画导览

1 uiview动画 [UIView beginAnimations:@"Curl"context:nil];//动画开始 [UIView setAnimationDuration:0.75]; [UIView setAnimationDelegate:self]; [UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:view cache:YES]; [view removeFromSupervi

隐式动画和核心动画

1. 隐式动画,只有非根层的CALayer才有隐式动画,即改变图层的属性的时候,比如大小,颜色等,会自动添加一个颜色效果, 根层:控件里面的CALayer 非根层:自己创建的CALayer,不依附控件存在的CALayer 隐式动画的使用场景不多 2. 核心动画: Core Animation是一组非常强大的动画处理API,使用它能做出非常炫丽的动画效果,而且往往是事半功倍.也就是说,使用少量的代码就可以实现非常强大的功能.Core Animation可以用在Mac OS X和iOS平台.Core

IOS开发核心动画篇---核心动画简介

iOS开发UI篇—核心动画简介 一.简单介绍 Core Animation,中文翻译为核心动画,它是一组非常强大的动画处理API,使用它能做出非常炫丽的动画效果,而且往往是事半功倍.也就是说,使用少量的代码就可以实现非常强大的功能. Core Animation是跨平台的,可以用在Mac OS X和iOS平台. Core Animation的动画执行过程都是在后台操作的,不会阻塞主线程.不阻塞主线程,可以理解为在执行动画的时候还能点击(按钮). 要注意的是,Core Animation是直接作用

动画效果-基础动画设置(改变大小,改变透明度,翻转,旋转,复原)

在可视化编程下 #import "BaseViewController.h" @interface BaseViewController () @property (weak, nonatomic) IBOutlet UIImageView *imageView; @end @implementation BaseViewController - (void)viewDidLoad { [super viewDidLoad]; } - (void)didReceiveMemoryWar

模拟炮弹动画效果,平移动画

本程序是模拟子弹无限的弹出平移的动画效果 知识点:(难点) 0,masony自适应布局(下载地址:https://github.com/Masonry/Masonry) 1,循环创建等间距的View 2,向可变数组中添加和取出这些View 3,定时器 4,循环执行 5,循环执行平移 6,加速和减速 感谢金ML小姐的无私帮助,接下来直接上代码: // //  ViewController.m //  模拟炮弹的实现 // //  Created by WBapple on 16/8/23. // 

核心动画——Core Animation

一. CALayer (一). CALayer简单介绍 在iOS中,你能看得见摸得着的东西基本上都是UIView,比方一个button.一个文本标签.一个文本输入框.一个图标等等.这些都是UIView,事实上UIView之所以能显示在屏幕上,全然是由于它内部的一个图层.在创建UIView对象时,UIView内部会自己主动创建一个图层(即CALayer对象),通过UIView的layer属性能够訪问这个层,要注意的是,这个默认的层不同意又一次创建.但能够往层里面加入子层.UIView能够通过add

核心动画编程指南Core Animation Programming Guide - iOS

1 有关核心动画 1.1 概览 1.1.1 Core Animation 管理应用的内容 核心是 layer objects, 1.1.2 更改 layer 触发动画 Like views, layer objects have a bounds rectangle, a position onscreen, an opacity, a transform, and many other visually-oriented properties that can be modified. 更改这

Android学习——Animation动画效果

1.Android动画模式: 1>tweened animation: 渐变动画: 2>frame by frame: 画面转换动画. 2.Android的Animation动画由四种类型组成: XML alpha 渐变透明度动画效果 scale 渐变尺寸伸缩动画效果 translate 画面转换位置移动动画效果 rotate 画面转移旋转动画效果 Java代码 AlphaAnimation 渐变透明度动画效果 ScaleAnimation 渐变尺寸伸缩动画效果 TranslateAnimat

(四)Android动画开发---Animation动画效果详解

Android 使用Animation的具体操作方法我们将会在这篇文章中做一个详细的介绍.大家可以通过这里举出的代码进行解读,并从中了解到相关操作技巧,方便我们将来开发应用,并且加深对这一操作系统的理解程度. 在Android中,分别可以在xml中定义Animation,也可以在程序代码中定义. 动画类型 Android的animation由四种类型组成 XML中 alpha 渐变透明度动画效果 scale 渐变尺寸伸缩动画效果 translate 画面转换位置移动动画效果 rotate 画面转