iOS - 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 形变属性方式
- 具体讲解见 iOS - CALayer 绘图层:3、形变属性设置。
iOS - UIView 动画的更多相关文章
- iOS UIView动画效果 学习笔记
//启动页动画 UIImageView *launchScreen = [[UIImageView alloc]initWithFrame:[UIScreen mainScreen].bounds]; ...
- iOS UIView 动画浅谈
UIView 等会效果简单实现,哪一个登录页面的demo来举例子吧. + (void)animateWithDuration:(NSTimeInterval)duration animations:( ...
- IOS UIView动画(封装动画)
● UIKit直接将动画集成到UIView类中,当内部的一些属性发生改变时,UIView 将为这些改变提供动画支持 ● 执行动画所需要的工作由UIView类自动完成,但仍要在希望执行动画时通知视 图, ...
- ios uiview封装动画(摘录)
iOS开发UI篇—核心动画(UIView封装动画) 一.UIView动画(首尾) 1.简单说明 UIKit直接将动画集成到UIView类中,当内部的一些属性发生改变时,UIView将为这些改变提供动画 ...
- iOS动画篇:UIView动画
iOS的动画效果一直都很棒很,给人的感觉就是很炫酷很流畅,起到增强用户体验的作用.在APP开发中实现动画效果有很多种方式,对于简单的应用场景,我们可以使用UIKit提供的动画来实现. UIView动画 ...
- IOS UIVIEW layer动画 总结(转)
转发自:http://www.aichengxu.com/article/%CF%B5%CD%B3%D3%C5%BB%AF/16306_12.html IOS UIVIEW layer动画 总结, ...
- iOS动画1 — UIView动画
iOS动画基础是Core Animation核心动画.Core Animation是iOS平台上负责图形渲染与动画的基础设施.由于核心动画的实现比较复杂,苹果提供了实现简单动画的接口—UIView动画 ...
- 【iOS开发】---- UIView动画
iOS 动画UIView动画 原文:http://www.cocoachina.com/bbs/read.php?tid=110168 1.概述 UIKit直接将动画集成到UIView类中,实现简 ...
- iOS核心动画以及UIView动画的介绍
我们看到很多App带有绚丽狂拽的特效,别出心裁的控件设计,很大程度上提高了用户体验,在增加了实用性的同时,也赋予了app无限的生命力.这些华丽的效果很多都是基于iOS的核心动画原理实现的,本文介绍一些 ...
随机推荐
- <转>年终盘点!2017年超有价值的Golang文章
马上就要进入2018年了,作为年终的盘点,本文列出了一些2017年的关于Go编程的一些文章,并加上简短的介绍. 文章排名不分先后, 文章也不一定完全按照日期来排列.我按照文章的大致内容分了类,便于查找 ...
- 洛谷 [P2486] 染色
树剖+线段树维护连续相同区间个数 注意什么时候长度要减一 #include <iostream> #include <cstdio> #include <cstdlib& ...
- BZOJ 1801: [Ahoi2009]chess 中国象棋 [DP 组合计数]
http://www.lydsy.com/JudgeOnline/problem.php?id=1801 在N行M列的棋盘上,放若干个炮可以是0个,使得没有任何一个炮可以攻击另一个炮. 请问有多少种放 ...
- POJ1741Tree [点分治]【学习笔记】
Tree Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 20098 Accepted: 6608 Description ...
- Nginx配置参数中文说明
#定义Nginx运行的用户和用户组 user www www; #nginx进程数,建议设置为等于CPU总核心数. worker_processes 8; #全局错误日志定义类型,[ debu ...
- yii2 源码分析 Component类分析 (二)
转载请注明链接http://www.cnblogs.com/liuwanqiu/p/6739538.html 组件(component),是Yii框架的基类,实现了属性.事件.行为三类功能,它集成自o ...
- MySQL统计函数记录——按月、按季度、按日、时间段统计
按年汇总,统计:select sum(mymoney) as totalmoney, count(*) as sheets from mytable group by date_format(col, ...
- Python自动化--语言基础6--模块操作之re、MySQL、Excel
1.Python自有模块正则 import re # re.match只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回None print(re.match("aaa ...
- Caused by: java.lang.ClassCastException: org.springframework.web.SpringServletContainerInitializer cannot be cast to javax.servlet.ServletContainerInitializer错误解决办法
严重: Failed to initialize end point associated with ProtocolHandler ["http-bio-8080"] java. ...
- QPS/TPS简介
系统吞度量要素 一个系统的吞度量(承压能力)与request对CPU的消耗.外部接口.IO等等紧密关联.单个reqeust 对CPU消耗越高,外部系统接口.IO影响速度越慢,系统吞吐能力越低,反之越高 ...