zoukankan      html  css  js  c++  java
  • UIViewAnimation

    在ViewController.m中声明

    @interface ViewController ()

    @property (nonatomic, strong) UIView *myView;




    @end

    @implementation ViewController

    - (void)viewDidLoad {
        [super viewDidLoad];
     
        
        //UIView层的动画分为: 代码块(begin...commit) , block块(常用)
        
        self.myView = [[UIView alloc] initWithFrame:CGRectMake(100, 100, 100, 100)];
        self.myView.backgroundColor = [UIColor redColor];
        [self.view addSubview:self.myView];
        

    - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
    {
        
        //第一种(比较常用,)

    // 这里要写上(防止循环引用) 这个也可以__weak ViewController *myself = self;
        __weak typeof(self) pSelf = self;

     //第一个参数animateWithDuration:代表的是动画的执行时间
        //block块里面代表的是执行的动画
       [UIView animateWithDuration:2.0f animations:^{
            UIViewAnimation
            //设置frame有动画 点击屏幕后,宽高会发生变化
            pSelf.myView.frame = CGRectMake(100, 100, 200, 200);
           
     
           
          
           //改变bounds的时候也可以执行动画,但是是以试图的center为中心像两边扩充
         //  pSelf.myView.bounds = CGRectMake(0, 0, 200, 200);
          
            //设置视图的透明度
           pSelf.myView.alpha = 0.1;
          
          //中心
    //pSelf.myView.center = pSelf.view.center;

           
            //设置边框
     //pSelf.myView.layer.borderWidth = 10;

        }];

      

    ******************************************第二种(在第一种的基础之上添加了一个参数)*********************************************************

     //第一个参数:代表的时间
        //第二个参数:block代表执行的动画
        //第三个参数:block代表动画完成
        [UIView animateWithDuration:1.0f animations:^{
          
                pSelf.myView.backgroundColor = [UIColor greenColor];
       } completion:^(BOOL finished) {
          
         
           //这里的代码不会当作动画执行
           pSelf.myView.backgroundColor = [UIColor redColor];
        }];
      

    //************************************第三种(添加一个延迟)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         **********************************************
        
        //第一个参数:代表的执行时间
        //第二个参数delay:代表的是延迟多久执行
       //第三个参数:代表的是动画的一些特效(此处填的是重复执行)

    //点击鼠标后开始执行的东西
        [UIView animateWithDuration:2.0f delay:1.0f options:   UIViewAnimationOptionRepeat  animations:^{
           
            pSelf.myView.center = pSelf.view.center;
            pSelf.myView.backgroundColor = [UIColor greenColor];
           

           //鼠标屏幕后,接下来要执行的东西
           } completion:^(BOOL finished) {
           
           pSelf.myView.backgroundColor = [UIColor yellowColor];
          
        }];

    //**********************************第四个******************************************************************
        //usingSpringWithDamping :0~1 ,值越小,越明显 ,代表的是阻尼系数,值越大,效果越小
        //initialSpringVelocity:代表的是初始速度

    //点击鼠标后开始执行的东西
      [UIView animateWithDuration:2.0f delay:0 usingSpringWithDamping:0.2 initialSpringVelocity:50 options:UIViewAnimationOptionRepeat animations:^{
          
            pSelf.myView.frame = CGRectMake(100, 300, 200, 100);
     
          
           //鼠标屏幕后,接下来要执行的东西
        } completion:^(BOOL finished) {
           
           
            pSelf.myView.backgroundColor = [UIColor yellowColor];
          
       }];
      

     //********代码块
        
       //第一个参数:代表的是动画的名字
        //第二个参数:代表的是上下文相关的,目前没用,以后不确定
        [UIView beginAnimations:nil context:nil];
        
        //从当前状态开始
        [UIView setAnimationBeginsFromCurrentState:YES];
        
        //设置动画在开始和结束的时候的一些特效
        [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
        
        //设置动画的持续时间
        [UIView setAnimationDuration:3.0f];
        
       //设置动画的延迟时间
        //[UIView setAnimationDelay:10.0f];
        
        
        //设置动画的重复次数
        [UIView setAnimationRepeatCount:1000];
        
        //设置动画的代理人
        [UIView setAnimationDelegate:self];
        
        //设置动画将要开始,会执行的SEL方法
        //[UIView setAnimationWillStartSelector:@selector(<#selector#>)];
        //设置动画将要结束,会执行的SEL方法
        //UIView setAnimationDidStopSelector:@selector(<#selector#>);
        self.myView.backgroundColor = [UIColor greenColor];
        
        self.myView.frame = CGRectMake(100, 100, 200, 200);
        
        //提交动画,才会执行动画
        [UIView commitAnimations];

      
        //*****************UIView切换的动画(不常用)
        //第一个参数:要变没的视图
        //第二个参数:要变出的视图
        //第三个参数:变出的动画动作
        


        [UIView transitionFromView:<#(UIView *)#> toView:<#(UIView *)#> duration:<#(NSTimeInterval)#> options:<#(UIViewAnimationOptions)#> completion:<#^(BOOL finished)completion#>];

        //比较常用的
     //可以配合着切换tableview与collectionView

    [UIView transitionWithView:<#(UIView *)#> duration:<#(NSTimeInterval)#> options:<#(UIViewAnimationOptions)#> animations:<#^(void)animations#> completion:<#^(BOOL finished)completion#>]
     
    }

  • 相关阅读:
    Java学习路线:day1 Java语言概述
    Java学习路线:day5 Java基本语法(下)2
    Java学习路线:day4 Java基本语法(下)
    Python笔记_第四篇_高阶编程_GUI编程之Tkinter_2.控件类
    Python笔记_第四篇_高阶编程_GUI编程之Tkinter_1.使用Python进行GUI编程的概述
    Python笔记_第三篇_面向对象_9.Python中的"get"和"set"方法(@property和@.setter)
    Python笔记_第三篇_面向对象_8.对象属性和类属性及其动态添加属性和方法
    Python笔记_第三篇_面向对象_7.多态
    Python笔记_第三篇_面向对象_6.继承(单继承和多继承)
    Python笔记_第三篇_面向对象_5.一个关于类的实例(人开枪射击子弹)
  • 原文地址:https://www.cnblogs.com/Coder-GT/p/4875869.html
Copyright © 2011-2022 走看看