Main.storyboard

ViewController.m

//

//  ViewController.m

//  8A08.动画总结

//

//  Created by huan on 16/2/6.

//  Copyright © 2016年 huanxi. All rights reserved.

//

#import "ViewController.h"

@interface ViewController ()

@property (weak, nonatomic) IBOutlet UIImageView *imageView;

@end

@implementation ViewController

- (void)viewDidLoad {

[super viewDidLoad];

// Do any additional setup after loading the view, typically from a nib.

//打印中心点 position anchorPoint

#warning 默认图层的"position" 就是“控件”的中心点

NSLog(@"中心点 %@",  NSStringFromCGPoint(self.imageView.center));

NSLog(@"position %@",  NSStringFromCGPoint(self.imageView.layer.position));

NSLog(@"anchorPoint %@",  NSStringFromCGPoint(self.imageView.layer.anchorPoint));

}

-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{

//动画总结

//    [self test1];

//    [self test2];

//    [self test3];

//    [self test4];

}

//1. UIView动画

-(void)test1{

[UIView beginAnimations:nil context:nil];

//设置时间

[UIView setAnimationDuration:3];

//监听动画的完成

[UIView setAnimationDelegate:self];

[UIView setAnimationDidStopSelector:@selector(stop)];

//实现动画代码

self.imageView.center = CGPointMake(200, 200);

[UIView commitAnimations];

}

//2.UIView的block动画

-(void)stop{

NSLog(@"%s", __func__);

}

-(void)test2{

[UIView animateWithDuration:3 animations:^{

self.imageView.center = CGPointMake(200, 200);

} completion:^(BOOL finished) {

NSLog(@"动画完成");

}];

}

//3.UIView的转场动画

-(void)test3{

//    UIViewAnimationOptionTransitionNone            = 0 << 20, // default

//    UIViewAnimationOptionTransitionFlipFromLeft    = 1 << 20,

//    UIViewAnimationOptionTransitionFlipFromRight   = 2 << 20,

//    UIViewAnimationOptionTransitionCurlUp          = 3 << 20,

//    UIViewAnimationOptionTransitionCurlDown        = 4 << 20,

//    UIViewAnimationOptionTransitionCrossDissolve   = 5 << 20,

//    UIViewAnimationOptionTransitionFlipFromTop     = 6 << 20,

//    UIViewAnimationOptionTransitionFlipFromBottom  = 7 << 20,

[UIView transitionWithView:self.imageView duration:3 options:UIViewAnimationOptionTransitionFlipFromLeft animations:^{

//更改图片

self.imageView.image = [UIImage imageNamed:@"2.jpg"];

} completion:^(BOOL finished) {

NSLog(@"动画完成");

}];

}

//核心动画  核心动画是一个假象

-(void)test4{

//    self.imageView.image = [UIImage imageNamed:@"2.jpg"];

//    //转场动画

//    CATransition *animation = [CATransition animation];

//    animation.type = @"push";

//

//    [self.imageView.layer addAnimation:animation forKey:nil];

//核心动画是一个假象 给你一个效果(效果之后就恢复)

//平移动画

CABasicAnimation *positionAni = [CABasicAnimation animation];

positionAni.keyPath = @"position";

NSLog(@"核心动画之前的position %@", NSStringFromCGPoint(self.imageView.layer.position));

positionAni.toValue = [NSValue valueWithCGPoint:CGPointMake(200, 300)];

//核心动画 要监听动画完成 设置代理

#warning 核心动画的代理是NSObject的分类,所以不需要遵守协议

positionAni.delegate = self;

[self.imageView.layer addAnimation:positionAni forKey:nil];

}

#pragma mark 核心动画的代理

-(void)animationDidStop:(CAAnimation *)anim finished:(BOOL)flag{

//    NSLog(@"动画完成");

NSLog(@"核心动画之后的position %@", NSStringFromCGPoint(self.imageView.layer.position));

}

@end

动画总结(UIView的动画)的更多相关文章

  1. iOS动画-从UIView到Core Animation

    首先,介绍一下UIView相关的动画. UIView普通动画: [UIView beginAnimations: context:]; [UIView commitAnimations]; 动画属性设 ...

  2. IOS 动画专题 --iOS核心动画

    iOS开发系列--让你的应用“动”起来 --iOS核心动画 概览 通过核心动画创建基础动画.关键帧动画.动画组.转场动画,如何通过UIView的装饰方法对这些动画操作进行简化等.在今天的文章里您可以看 ...

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

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

  4. 核心动画与UIView的区别

    核心动画与UIView的区别 1.核心动画只作用于layer,使用核心动画之前,必须有layer 2.核心动画只是假象,并没有移动实际位置 什么时候使用核心动画,什么时候使用UIView动画 1.当不 ...

  5. 核心动画和UIView动画的区别

    核心动画和UIView动画的区别 1.核心动画制作用在Layer 2.核心动画的修改的属性都是假象,他的真实位置没有发生变化()

  6. UIView简单动画

    UIView动态实现的效果有以下几种: 1.动态改变frame 2.动态改变color 3.动态改变alpha 4.动态改变bounds 首先,我们先看几种BasicView动画 #pragma ma ...

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

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

  8. iOS开发——动画编程Swift篇&(一)UIView基本动画

    UIView基本动画 // MARK: - UIView动画 ------------------------------------- // MARK: - UIView动画-淡入 @IBActio ...

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

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

随机推荐

  1. tcp/ip http socket笔记

    1.TCP/IP协议是传输层协议,主要解决数据如何在网络中传输 HTTP是应用层协议,主要解决如何包装数据 2.TCP连接的三次握手 第一次握手:客户端发送syn包到服务器,并进入SYN_SEND状态 ...

  2. MVC中实现只有当用户登录成功的时候才等浏览内容,否则跳转到登录页面

    第一步,在登录的时候记录Session //提供Session接口方便后面判断用户登录 Session["UserInfo"] = uinfo;  //uInfo是用户登录Mode ...

  3. Mac上的欧路词典单词本迁移到有道词典 #node.js

    摘要 有道词典提供了柯林斯和朗文辞典,加上最近在背单词且Mac版的屏幕取词也够用了,为了云单词本的同步,决定抛弃Mac上的欧路词典.单词欧路上的单词本也存了一百多个单词.怎样迁移到有道呢? 关键词:n ...

  4. [刘阳Java]_什么是MyBatis_第1讲

    1.什么MyBatis,我们先通过百度百科先进行一个简单的了解 MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation ...

  5. python学习之——splinter介绍

    Splinter是什么: 是一个用 Python 编写的 Web 应用程序进行验收测试的工具. Splinter执行的时候会自动打开你指定的浏览器,访问指定的URL,然后你所开发的模拟的任何行为,都会 ...

  6. jdk安装和环境变量配置

    jdk的安装和环境变量配置每次换新环境都在做,但是每次都没有认真去想是怎么做的,反正每次打开百度搜索照做就是.这次整理一下,也顺便理清一下其中的原理. 1.第一步当然就是下载jdk,我这边下载的是jd ...

  7. fiddler的前端资源代理功能。

       说一个很有用的东西.fiddler的autoResponder功能能把线上网站的资源引用代理到本地.比如这个js.我们改了想测测效果.但是如果经过中间的流程要把这个文件发布到线上去挺麻烦的,而且 ...

  8. tp框架简易导出数据库

    类库,将以下文件放入vendor文件夹中,命名空间vendor,使用think下的model类 <?php /** * 描述:基于ThinkPHP框架的Mysql数据库导出类 * 日期:2012 ...

  9. AFN 无网络监控

    直接把封装到请求里就好 -(void)afn{ //1.创建网络状态监测管理者 AFNetworkReachabilityManager *manger = [AFNetworkReachabilit ...

  10. NC 解决启动环境报内存溢出问题

    java heap space 内存溢出 解决方法如下: 在eclipse中,window-->preferences-->Java-->Installed JREs选中JRE 点击 ...