关闭

iOS动画入门

208人阅读 评论(0) 收藏 举报
分类:

一 动画介绍

在iOS中动画实现技术主要是:Core Animation。 Core Animation负责所有的滚动、旋转、缩小和放大以及所有的iOS动画效果。其中UIKit类通常都有animated:参数部分,它可以允许是否使用动画。 

本文将介绍UIView动画的实现方式,有基础方法和block方法。

二 实现方法

1 基础动画

[objc] view plaincopy
  1. [UIView  beginAnimations:nil context:nil];  //动画开始  
  2.    //Code...  
  3. [UIView commitAnimations];                  //动画结束  

[objc] view plaincopy
  1. //eg 设置lb向下移动  
  2. [UIView beginAnimations:nil context:nil];  
  3. [UIView setAnimationDuration:3];  
  4. CGPoint point = self.lb.center;  
  5. point.y += 100;  
  6. self.lb.center = point;  
  7. [UIView commitAnimations];  

2 blcok方法1

[objc] view plaincopy
  1. [UIView animateWithDuration:3   //动画持续时间  
  2.                     animations:^{  
  3.        //Code...  
  4.    }];  

[objc] view plaincopy
  1. //eg 改变lb的透明度  
  2.     [UIView animateWithDuration:3 animations:^{  
  3.         self.lb.alpha = 0.5;  
  4.     }];  

3 blcok方法2

[objc] view plaincopy
  1. UIView animateWithDuration:3   //动画持续时间  
  2.                      animations:^{  
  3.         //动画执行  
  4.     } completion:^(BOOL finished) {  
  5.         //动画完成后执行  
  6.     }];  

[objc] view plaincopy
  1. //eg 旋转lb第一种方法:  
  2.     CGAffineTransform endAngel = CGAffineTransformMakeRotation(90.0f*(M_PI/180.0f));  
  3.       
  4.     [UIView animateWithDuration:3 animations:^{  
  5.         self.lb.transform = endAngel;  
  6.     } completion:^(BOOL finished) {  
  7.         self.stateLb.text = @"动画完成了";  
  8.     }];  


4 blcok方法3

[objc] view plaincopy
  1. [UIView animateWithDuration:3   //动画持续时间  
  2.                           delay:1   //动画延迟时间  
  3.                         options:UIViewAnimationOptionCurveEaseIn    //设置动画过渡效果  
  4.                      animations:^{  
  5.         //动画执行  
  6.     } completion:^(BOOL finished) {  
  7.         //动画完成后执行  
  8.     }];  

[objc] view plaincopy
  1. //eg 改变lb的字体大小 和位置  
  2.    [UIView animateWithDuration:3  
  3.                          delay:1  
  4.                        options:UIViewAnimationOptionCurveEaseInOut //设置动画过渡效果  
  5.                     animations:^{  
  6.        CGPoint center = self.lb.center;  
  7.        center.x = 200;  
  8.        self.lb.center = center;  
  9.          
  10.        self.lb.textColor = [UIColor blueColor];  
  11.    } completion:^(BOOL finished) {  
  12.        self.stateLb.text = @"改变lb的字体大小 和位置 完成*";  
  13.    }];  



5 blcok方法4

[objc] view plaincopy
  1. [UIView animateWithDuration:3       //动画持续时间  
  2.                           delay:1       //动画延迟时间  
  3.          usingSpringWithDamping:1.0     //设置类似弹簧效果  
  4.           initialSpringVelocity:5.0     //设置初始速度  
  5.                         options:UIViewAnimationOptionCurveLinear //设置动画过渡效果  
  6.                      animations:^{  
  7.       
  8.     } completion:^(BOOL finished) {  
  9.           
  10.     }];  

[objc] view plaincopy
  1. [UIView animateWithDuration:3 delay:1 usingSpringWithDamping:1.0 initialSpringVelocity:5.0 options:UIViewAnimationOptionCurveEaseInOut animations:^{  
  2.         CGPoint center = self.btn.center;  
  3.         center.y += 50;  
  4.         self.btn.center = center;  
  5.     } completion:^(BOOL finished) {  
  6.         self.stateLb.text = @"弹簧效果结束";  
  7.     }];  
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:33387次
    • 积分:598
    • 等级:
    • 排名:千里之外
    • 原创:3篇
    • 转载:152篇
    • 译文:0篇
    • 评论:0条
    文章分类