UIView 动画
1、UIView 动画
- 核心动画 和 UIView 动画 的区别:
- 核心动画一切都是假象,并不会真实的改变图层的属性值,如果以后做动画的时候,不需要与用户交互,通常用核心动画(转场)。
- UIView 动画必须通过修改属性的真实值,才有动画效果。
1.1 block 方式
- 设置控件位置、尺寸、透明度等的代码,放在 animateWithDuration: block 中,将自动以动画的方式改变。
// 开始动画,动画持续时间 2 秒
[UIView animateWithDuration:1.0 animations:^{ // 设置动画结束后的效果值 // 改变控件的位置和尺寸,改变后的位置或大小
self.redView.frame = CGRectMake(150, 50, 50, 50); } completion:^(BOOL finished) { // 动画完成后的操作 // 开始一个新的动画
[UIView animateWithDuration:1.0 animations:^{ // 改变控件的位置和尺寸,改变后的位置或大小
self.redView.frame = CGRectMake(50, 150, 80, 80);
}];
}];
效果

弹簧效果的动画
[UIView animateWithDuration:1.0 delay:0 usingSpringWithDamping:0.2 initialSpringVelocity:0 options:UIViewAnimationOptionCurveEaseInOut animations:^{
// SpringWithDamping: 弹性系数,越小弹簧效果越明显
self.redView.frame = CGRectMake(150, 50, 50, 50);
} completion:nil];
- 效果

1.2 动画块方式
- 设置控件位置、尺寸、透明度等的代码,放在 beginAnimations: 和 commitAnimations 之间,将自动以动画的方式改变。
// 开始一个动画块
[UIView beginAnimations:nil context:nil]; // 动画设置 // 设置动画时间
[UIView setAnimationDuration:1.0]; // default = 0.2 // 设置延时
[UIView setAnimationDelay:0.0]; // 设置指定的时间后开始执行动画,default = 0.0 // 设置动画执行节奏
/*
UIViewAnimationCurveEaseInOut, // slow at beginning and end 开始和结束慢速,默认
UIViewAnimationCurveEaseIn, // slow at beginning 开始慢速
UIViewAnimationCurveEaseOut, // slow at end 结束慢速
UIViewAnimationCurveLinear // 匀速
*/
[UIView setAnimationCurve:UIViewAnimationCurveLinear]; // 设置重复次数
[UIView setAnimationRepeatCount:MAXFLOAT]; // default = 0.0. May be fractional // 设置是否自动返回,以动画的方式返回
[UIView setAnimationRepeatAutoreverses:YES]; // default = NO. used if repeat count is non-zero // 设置是否从当前状态开始动画
[UIView setAnimationBeginsFromCurrentState:YES]; // default = NO // 设置代理
[UIView setAnimationDelegate:self]; // default = nil // 设置动画开始时执行的代理方法,自定义方法
[UIView setAnimationWillStartSelector:@selector(startAnimations)]; // default = NULL // 设置动画结束时执行的代理方法,自定义方法
[UIView setAnimationDidStopSelector:@selector(stopAnimations)]; // default = NULL // 动画之行后效果值 // 设置透明度,改变后的透明度
self.redView.alpha = 1.0; // 改变控件的位置和尺寸,改变后的位置或大小
self.redView.frame = CGRectMake(150, 150, 80, 80); // 结束一个动画块
[UIView commitAnimations]; // 动画开始时执行的代理方法,自定义方法
- (void)startAnimations { NSLog(@"startAnimations");
} // 动画结束时执行的代理方法,自定义方法
- (void)stopAnimations { NSLog(@"stopAnimations");
}
- 效果

1.3 形变属性方式
UIView 动画的更多相关文章
- 转一篇简洁的UIView动画编程方法
iOS 中的 UIView 动画编程其实还是很简单的,像 CSS3 一样,在给定的时间内完成状态连续性的变化呈现.比如背景色,Frame 大小,位移.翻转,特明度等. 以前我使用的编程方式都是用下面 ...
- UIView动画
UIView动画 一.commitAnimations方式使用UIView动画 1.commitAnimations方式使用UIView动画 [UIView beginAnimations:@&quo ...
- UIView动画效果
做出UI界面,实现程序功能,是重中之重,但是通过动画提升使用体验,一般人应该不会拒绝吧. 那么问题又来了,怎么做? 一: 稳扎稳打: 一步一步来吧,毕竟,心急吃不了热豆腐. 1.开启一个动画 2,设置 ...
- 核心动画和UIView动画的区别
核心动画和UIView动画的区别 1.核心动画制作用在Layer 2.核心动画的修改的属性都是假象,他的真实位置没有发生变化()
- 个人学习对UIView动画的总结
我的博客之前已经开通五个月了,但是一直没有写东西.一是不敢写,二是也不知道写啥.毕竟是一个刚刚入行大半年的菜鸟,现在总想通过各种办法提高自己.之前总感觉用到一些东西,只是当时搞懂了一点,加上并没有总结 ...
- UIView动画学习笔记
UIView的动画是通过修改控件的属性来达到动画的效果,如:渐变, 移动. 废话不多说,直接上代码: - (void)loadView{ [super loadView]; _leftView = [ ...
- iOS动画篇:UIView动画
iOS的动画效果一直都很棒很,给人的感觉就是很炫酷很流畅,起到增强用户体验的作用.在APP开发中实现动画效果有很多种方式,对于简单的应用场景,我们可以使用UIKit提供的动画来实现. UIView动画 ...
- iOS之UIview动画
一.UIView动画(首尾) 1.简单说明 UIKit直接将动画集成到UIView类中,当内部的一些属性发生改变时,UIView将为这些改变提供动画支持 执行动画所需要的工作由UIView类自动完成, ...
- iOS - UIView 动画
1.UIView 动画 核心动画 和 UIView 动画 的区别: 核心动画一切都是假象,并不会真实的改变图层的属性值,如果以后做动画的时候,不需要与用户交互,通常用核心动画(转场). UIView ...
- iOS 动画总结—UIView动画
1.概述 UIKit直接将动画集成到UIView类中,实现简单动画的创建过程.UIView类定义了几个内在支持动画的属性声明,当这些属性发生改变时,视图为其变化过程提供内建的动画支持. 执行动画所需要 ...
随机推荐
- Unity3D的坑系列:打包Assetbundle丢失Shader问题(贴图显示不了)
从Unity4.2开始,为了减少首包大小,不会默认将所有Shader引擎加到游戏程序中,据Unity技术支持人员所说,Unity会将Shader引擎打包到Assetbundle资源中,但是我测试发现不 ...
- Java微信公众平台开发(六)--微信开发中的token获取
转自:http://www.cuiyongzhi.com/post/44.html (一)token的介绍 引用:access_token是公众号的全局唯一票据,公众号调用各接口时都需使用access ...
- collections、time和datetime模块
主要内容: 一.collections模块 二.time模块 三.datetime模块 1️⃣ collection模块 1.什么是collections模块.干什么用? collections模块 ...
- Redis搭建(五):Cluster集群搭建
一.方案 1. 介绍 redis3.0及以上版本实现,集群中至少应该有奇数个节点,所以至少有三个节点,官方推荐三主三从的配置方式 使用哈希槽的概念,Redis 集群有16384个哈希槽,每个key通过 ...
- Tags and Layers
[Tags and Layers] 1.tags and layers 配置面板."Edit" -> "Project Settings" -> & ...
- 如何判定Unity已破解成功
[如何判定Unity已破解成功] 点击菜单“Unity”->"About Unity...".在弹出的关于Unity的信息的对话框中,如果是已破解版本,在右下角会显示序列号.
- LED电视与液晶电视的区别
[LED电视与液晶电视的区别] 目前LED电视全部是采用了LED背光的液晶电视,本质上而言,还是液晶电视.这与真正的LED电视是两个完全不同的概念.如今通常把LED背光电视称为LED电视,采用CCFL ...
- Linux开机启动详解
Linux开机启动程序详解 我们假设大家已经熟悉其它操作系统的引导过程,了解硬件的自检引导步骤,就只从Linux操作系统的引导加载程序(对个人电脑而言通常是LILO)开始,介绍Linux开机引导的步骤 ...
- IP定位,天气接口
首先获取IP ////获得本地真实IP function get_onlineip() { $ip_json = @file_get_contents("http://ip.taobao.c ...
- selenium2 定位 窗体切换等等 (二)
定位用的html素材有两个 demo.html <html> <head> <title>UI Automation Testing</title> & ...