● UIKit直接将动画集成到UIView类中,当内部的一些属性发生改变时,UIView 将为这些改变提供动画支持
● 执行动画所需要的工作由UIView类自动完成,但仍要在希望执行动画时通知视 图,为此需要将改变属性的代码放在[UIView beginAnimations:nil context:nil]和 [UIView commitAnimations]之间
 
● 常见方法解析:
● + (void)setAnimationDelegate:(id)delegate 设置动画代理对象,当动画开始或者结束时会发消息给代理对象
 
● + (void)setAnimationWillStartSelector:(SEL)selector 当动画即将开始时,执行delegate对象的selector,并且把beginAnimations:context:中 传入的参数传进selector
 
● + (void)setAnimationDidStopSelector:(SEL)selector 当动画结束时,执行delegate对象的selector,并且把beginAnimations:context:中传入 的参数传进selector
 
● + (void)setAnimationDuration:(NSTimeInterval)duration 动画的持续时间,秒为单位
● + (void)setAnimationDelay:(NSTimeInterval)delay
动画延迟delay秒后再开始

● + (void)setAnimationStartDate:(NSDate *)startDate
动画的开始时间,默认为now

● + (void)setAnimationCurve:(UIViewAnimationCurve)curve
动画的节奏控制,具体看下面的”备注”

● + (void)setAnimationRepeatCount:(float)repeatCount
动画的重复次数

● + (void)setAnimationRepeatAutoreverses:(BOOL)repeatAutoreverses
如果设置为YES,代表动画每次重复执行的效果会跟上一次相反

● + (void)setAnimationTransition:(UIViewAnimationTransition)transition forView:(UIView *)view cache:(BOOL)cache 设置视图view的过渡效果, transition指定过渡类型, cache设置YES代表使用视 图缓存,性能较好
#import "NJViewController.h"

@interface NJViewController ()
@property (weak, nonatomic) IBOutlet UIView *cutomView; @end @implementation NJViewController - (void)viewDidLoad
{
[super viewDidLoad]; }
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{ [UIView transitionWithView:self.view duration:1.0 options: animations:^{
NSLog(@"animations");
// 要执行的动画
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:self.view cache:YES]; } completion:^(BOOL finished) {
NSLog(@"completion");
// 执行完毕之后执行的动画
}]; } - (void)test2
{
[UIView animateWithDuration:2.0 animations:^{
NSLog(@"动画执行之前: %@",NSStringFromCGPoint(self.cutomView.center));
// 需要执行动画的代码
self.cutomView.center = CGPointMake(, ); } completion:^(BOOL finished) {
// 动画执行完毕之后执行的代码
NSLog(@"动画执行之后: %@",NSStringFromCGPoint(self.cutomView.center)); }];
} - (void)test1
{
// 1.创建核心动画
// 注意点:如果通过核心动画改变layer的位置状态, 表面上看上去已经改变了, 但是实质上是没有改变的
CABasicAnimation *anima = [CABasicAnimation animation];
anima.keyPath = @"position";
anima.toValue = [NSValue valueWithCGPoint:CGPointMake(, )]; anima.removedOnCompletion = NO;
anima.fillMode = kCAFillModeForwards; anima.delegate = self; // 2.添加核心动画
[self.cutomView.layer addAnimation:anima forKey:nil];
} - (void)animationDidStart:(CAAnimation *)anim
{
NSLog(@"核心动画执行之前 %@", NSStringFromCGPoint(self.cutomView.layer.position)); } - (void)animationDidStop:(CAAnimation *)anim finished:(BOOL)flag
{
NSLog(@"核心动画执行完毕 %@", NSStringFromCGPoint(self.cutomView.layer.position));
} - (void)test
{
// 1.UIVIEW封装的动画, 动画执行完毕之后不会反弹
NSLog(@"动画执行之前: %@",NSStringFromCGPoint(self.cutomView.center));
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:2.0];
[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:@selector(didStopAnimatino)];
self.cutomView.center = CGPointMake(, );
[UIView commitAnimations]; } - (void)didStopAnimatino
{
NSLog(@"动画执行完毕 %@", NSStringFromCGPoint(self.cutomView.center));
} @end

IOS UIView动画(封装动画)的更多相关文章

  1. iOS UIView简单缩放动画

    @interface ViewController () { UIView *animationView; UIButton *button; CGPoint animationPoint; } @e ...

  2. iOS开发UI篇—核心动画(UIView封装动画)

    iOS开发UI篇—核心动画(UIView封装动画) 一.UIView动画(首尾) 1.简单说明 UIKit直接将动画集成到UIView类中,当内部的一些属性发生改变时,UIView将为这些改变提供动画 ...

  3. ios uiview封装动画(摘录)

    iOS开发UI篇—核心动画(UIView封装动画) 一.UIView动画(首尾) 1.简单说明 UIKit直接将动画集成到UIView类中,当内部的一些属性发生改变时,UIView将为这些改变提供动画 ...

  4. UIView封装动画--iOS利用系统提供方法来做转场动画

    UIView封装动画--iOS利用系统提供方法来做转场动画 UIViewAnimationOptions option; if (isNext) { option=UIViewAnimationOpt ...

  5. iOS:抽屉侧滑动画两种形式(1、UIView侧滑 2、ViewController侧滑)

    前言: 在iOS中抽屉动画是很常用的一种技术,使用它有很炫的体验效果,为app增添特色,形式就两种,一个是UIView的侧滑,另一个就是ViewController的侧滑. 实现方式: 抽屉侧滑动画有 ...

  6. IOS UIVIEW layer动画 总结(转)

    转发自:http://www.aichengxu.com/article/%CF%B5%CD%B3%D3%C5%BB%AF/16306_12.html   IOS UIVIEW layer动画 总结, ...

  7. 核心动画(UIView封装动画)

    一.UIView动画(首尾) 1.简单说明 UIKit直接将动画集成到UIView类中,当内部的一些属性发生改变时,UIView将为这些改变提供动画支持 执行动画所需要的工作由UIView类自动完成, ...

  8. iOS - UIView 动画

    1.UIView 动画 核心动画 和 UIView 动画 的区别: 核心动画一切都是假象,并不会真实的改变图层的属性值,如果以后做动画的时候,不需要与用户交互,通常用核心动画(转场). UIView ...

  9. 核心动画(UIView封装动画)-转

    一.UIView动画(首尾) 1.简单说明 UIKit直接将动画集成到UIView类中,当内部的一些属性发生改变时,UIView将为这些改变提供动画支持. 执行动画所需要的工作由UIView类自动完成 ...

  10. iOS UIView 动画浅谈

    UIView 等会效果简单实现,哪一个登录页面的demo来举例子吧. + (void)animateWithDuration:(NSTimeInterval)duration animations:( ...

随机推荐

  1. iOS 面试全方位剖析 -- Block篇

    1.Block的本意 block本质上也是一个OC对象,它内部也有个isa指针, block是封装了函数调用以及函数调用环境的OC对象, block是封装函数及其上下文的OC对象 2.block截获变 ...

  2. CodeForces 116C 【BFS】

    思路: 求所有树的最大高度? 注意:所有树从树根开始? #include <bits/stdc++.h> using namespace std; typedef long long LL ...

  3. 图解SSH上传安装eclipse

    安装eclipse 步骤: 1.SSH上传eclipse tar文件 2.linux下Computer-->FilesSystem-->soft显示上传的压缩包 3.解压eclipse文件 ...

  4. 洛谷P1800 software_NOI导刊2010提高(06)

    P1800 software_NOI导刊2010提高(06) 题目描述 一个软件开发公司同时要开发两个软件,并且要同时交付给用户,现在公司为了尽快完成这一任务,将每个软件划分成m个模块,由公司里的技术 ...

  5. dbms_xplan的display查看执行计划

    DBMS_XPLAN包包括一系列函数,主要是用于显示SQL语句的执行计划,且不同的情形下使用不同的函数来显示,如预估的执行计划则使用 display函数,而实际的执行计划则是用display_curs ...

  6. 洛谷P4315 月下“毛景树”

    题目描述 毛毛虫经过及时的变形,最终逃过的一劫,离开了菜妈的菜园. 毛毛虫经过千山万水,历尽千辛万苦,最后来到了小小的绍兴一中的校园里. 爬啊爬~爬啊爬毛毛虫爬到了一颗小小的"毛景树&quo ...

  7. js和css文件位置对页面性能的影响

    翻译了一篇Performance上的关于页面性能的文章<DecIPhering the critical rendering path>,原文在这里.需要进一步整理和了解有关js.css等 ...

  8. [Leetcode]009.Palindrome Number

    public class Solution { public boolean isPalindrome(int x) { if (x<0 || (x!=0 && x%10==0) ...

  9. P2675 《瞿葩的数字游戏》T3-三角圣地

    传送门 考虑最上面每个位置的数对答案的贡献 然后就很容易发现: 如果有n层,位置 i 的数对答案的贡献就是C( n-1,i ) 然后就有很显然的贪心做法: 越大的数放越中间,这样它的贡献就会尽可能的大 ...

  10. @SessionAttribute使用详解

    @SessionAttribute使用详解   @ModelAttribute注解作用在方法上或者方法的参数上,表示将被注解的方法的返回值或者是被注解的参数作为Model的属性加入到Model中,然后 ...