1、常用属性:

frame   bounds   center   alpha    Transition 过渡    transform 动画效果

2、常用方法:

+(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 "ViewController.h"

 @interface ViewController ()
{
UIImageView *imageView;
}
@end @implementation ViewController - (void)viewDidLoad {
[super viewDidLoad]; imageView = [[UIImageView alloc]initWithFrame:self.view.frame];
imageView.image = [UIImage imageNamed:@"7.jpg"];
// imageView.contentMode = UIViewContentModeScaleAspectFit;
[self.view addSubview:imageView]; UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
button.frame = CGRectMake(, , , );
button.center = self.view.center;
button.backgroundColor = [UIColor brownColor];
[button addTarget:self action:@selector(viewAnimation3) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:button]; } #pragma mark -- 1、frame bounds center alpha ---
- (void)viewAnimation1 {
#pragma mark - 方法1
// 在一段时间内 执行完命令
// [UIView animateWithDuration:3 animations:^{
// imageView.alpha = 0.5;
// }]; #pragma mark - 方法2
// 开始动画
[UIView beginAnimations:@"animation" context:nil]; // 这只动画的持续时间
[UIView setAnimationDuration:]; // ..... 动画效果
imageView.alpha = 0.5;
imageView.bounds = CGRectMake(, , , );
imageView.center = CGPointMake(, );
// imageView.frame = CGRectMake(100, 100, 100, 100); // 提交动画 会去执行动画
[UIView commitAnimations];
} #pragma mark - 2、Transition
/*
typedef NS_ENUM(NSInteger, UIViewAnimationTransition) {
UIViewAnimationTransitionNone,
UIViewAnimationTransitionFlipFromLeft, 从左面翻转
UIViewAnimationTransitionFlipFromRight,从右面翻转
UIViewAnimationTransitionCurlUp, 向上翻页
UIViewAnimationTransitionCurlDown,向下翻页
};
*/
- (void)viewAnimation2 {
// 开始动画
[UIView beginAnimations:nil context:nil];
// 设置动画持续时间
// [UIView setAnimationDuration:3];
// 设置 UIView 的过渡动画
[UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:imageView cache:YES]; #pragma mark - 3、UIViewAnimationCurve
/*
typedef NS_ENUM(NSInteger, UIViewAnimationCurve) {
UIViewAnimationCurveEaseInOut, // slow at beginning and end 慢进慢出
UIViewAnimationCurveEaseIn, // slow at beginning 快进
UIViewAnimationCurveEaseOut, // slow at end 快出
UIViewAnimationCurveLinear 匀速
};
*/
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
// 设置 代理(检测动画结束)
[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:@selector(finishAnimation)];
// 提交动画
[UIView commitAnimations]; } // 动画结束之后触发的方法
- (void)finishAnimation {
[UIView beginAnimations:@"o" context:nil];
[UIView setAnimationDuration:];
imageView.alpha = 0.1;
imageView.bounds = CGRectZero;
imageView.center = CGPointMake(, ); [UIView commitAnimations];
} #pragma mark - 4、transform
/*
imageView.transform=CGAffineTransformScale(imageView.transform, 0.5, 0.5); // 实现的是放大和缩小imageView.transform=CGAffineTransformRotate(imageView.transform, M_PI_4); //实现的是旋转 imageView.transform=CGAffineTransformTranslate(imageView.transform, 20, 0); //实现的是平移
*/
- (void)viewAnimation3 { [UIView beginAnimations:@"animation" context:nil];
[UIView setAnimationDuration:];
// transform 如果没有还原transform 他会保持 改变后的模样
imageView.transform = CGAffineTransformScale(imageView.transform, 0.5, 0.5); [UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:@selector(restore)];
[UIView commitAnimations]; } - (void)restore {
[UIView animateWithDuration: animations:^{
imageView.transform = CGAffineTransformIdentity; }];
}

模拟器效果截图:

方法一效果图:

方法二效果图:

方法三效果图:

CoreAnimation 核心动画一 (一些常用属性 和 方法)的更多相关文章

  1. iOS开发CoreAnimation解读之一——初识CoreAnimation核心动画编程

    iOS开发CoreAnimation解读之一——初识CoreAnimation核心动画编程 一.引言 二.初识CoreAnimation 三.锚点对几何属性的影响 四.Layer与View之间的关系 ...

  2. UIView的一些常用属性和方法

    UIView的一些常用属性和方法 1. UIView的属性 UIView继承自UIResponder,拥有touches方法. - (instancetype)initWithFrame:(CGRec ...

  3. SVG DOM常用属性和方法介绍(1)

    12.2  SVG DOM常用属性和方法介绍 将以Adobe SVG Viewer提供的属性和方法为准,因为不同解析器对JavaScript以及相关的属性和方法支持的程度不同,有些方法和属性是某个解析 ...

  4. 第190天:js---String常用属性和方法(最全)

    String常用属性和方法 一.string对象构造函数 /*string对象构造函数*/ console.log('字符串即对象');//字符串即对象 //传统方式 - 背后会自动将其转换成对象 / ...

  5. Node.js process 模块常用属性和方法

    Node.js是常用的Javascript运行环境,本文和大家发分享的主要是Node.js中process 模块的常用属性和方法,希望通过本文的分享,对大家学习Node.js http://www.m ...

  6. ios基础篇(四)——UILabel的常用属性及方法

    UILabel的常用属性及方法:1.text //设置和读取文本内容,默认为nil label.text = @”文本信息”; //设置内容 NSLog(@”%@”, label.text); //读 ...

  7. UITableView常用属性和方法 - 永不退缩的小白菜

    UITableView常用属性和方法 - 永不退缩的小白菜 时间 2014-05-27 01:21:00  博客园精华区原文  http://www.cnblogs.com/zhaofucheng11 ...

  8. UIView常用属性与方法/UIKit继承结构

    UIView常用属性与方法 @interface UIView : UIResponder<NSCoding, UIAppearance, UIAppearanceContainer, UIDy ...

  9. JavaScript中Number常用属性和方法

    title: JavaScript中Number常用属性和方法 toc: false date: 2018-10-13 12:31:42 Number.MAX_VALUE--1.79769313486 ...

随机推荐

  1. Oracle DB 使用调度程序自动执行任务

    • 使用调度程序来简化管理任务 • 创建作业.程序和调度 • 监视作业执行 • 使用基于时间或基于事件的调度来执行调度程序作业 • 描述窗口.窗口组.作业类和使用者组的用途 • 使用电子邮件通知 • ...

  2. OpenGL 4.0 GLSL 实现 投影纹理映射(Projective Texture Mapping) (转)

    http://blog.csdn.net/zhuyingqingfen/article/details/19331721   分类: GLSL  投影纹理映射 (projective texture ...

  3. volley开源库乱码问题总结(持续更新)

    之前Android开发一直用的是多层封装的Final框架.最近开始学习使用小巧的volley. 在使用该框架的过程中,出现了数次乱码问题,再次做以总结. 分别是返回数据乱码和提交参数乱码两个问题: 一 ...

  4. 垃圾回收GC:.Net自己主动内存管理 上(一)内存分配

    垃圾回收GC:.Net自己主动内存管理 上(一)内存分配 垃圾回收GC:.Net自己主动内存管理 上(一)内存分配 垃圾回收GC:.Net自己主动内存管理 上(二)内存算法 垃圾回收GC:.Net自己 ...

  5. iOS开发——UI篇Swift篇&玩转UItableView(四)自定义&封装

    UItableView自定义&封装 一:Model class AppsModel: NSObject { //定义模型的三个属性 var imageName:String! //图片名称 v ...

  6. Flex+Struts2+JSON实现Flex和后台的HTTP Service请求

    http://www.fengfly.com/plus/view-191093-1.html Flex+Struts2+JSON的后台代码我在这就不多说了.不懂得请看我写的上一篇文章<Strut ...

  7. mysql sort 性能优化

    http://dev.mysql.com/doc/refman/5.7/en/order-by-optimization.html 这段时间mysql 数据库的性能明显降低,iowait达到了30, ...

  8. FlatUI博皮制作

    Bootstrap3出来了,抛开内部框架结构和css命名的变化,bs3最大的改变莫过于扁平化. 扁平化UI中的典范,除了Metro,就是Flat了.目前本人FlatUI中毒中,于是开始慢慢的开始将博皮 ...

  9. 最少javascript代码完成一个2048游戏

    原生javascript代码写的2048游戏.建议在谷歌浏览器下跑.'WASD'控制方向.演示地址请移步:http://runjs.cn/detail/bp8baf8b 直接贴代码~ html: &l ...

  10. 关于yarn的spark配置属性

    spark1.2.0 These are configs that are specific to Spark on YARN Property Name Default Meaning  spark ...