iOS 开发——登录页面动画、转场动画
DEMO下载地址:https://github.com/YYProgrammer/YYLoginTranslationDemo
技术点分析
如何生成一个动画让控件执行?
现流行的方式主要有三种:
1、基本动画
2、核心动画
3、三方框架——POP框架(由Facebook开发)
它们的主要差别:
1、控件的位置、大小等是不是真的发生了改变?
基本动画、pop动画,是给控件添加动画(一般也不会有用基本动画给layer添加动画的做法),所有动画完成时,控件的属性已经改变,而核心动画,是给控件的图层(view.layer)添加动画,看似发生了位置大小的变化,实际上控件本身的属性并未改变。
2、它们分别的优劣势
2.1、基本动画
优势:代码简单,代码量少
劣势:功能相对单一
2.2、核心动画的优势
优势:功能强大、流畅性好、连续几个动画之间的衔接度好。流畅主要是因为操作layer是轻量级的,不容易产生动画卡顿的感觉。
劣势:代码量大;容易写错(某些参数没有定义宏,写错了都不知道);如有需要,还要手动在动画完成时将控件的属性同步修改了。
2.3、pop动画的优势
优势:比核心动画代码要简单,最大的优势在于,容易做弹簧效果,所以很多有“Q弹”感觉的都用pop动画做
劣势:要在一个动画完成时开始另一个动画,pop动画不擅长,主要因为它的动画执行时间由"速度"和"弹性系数"两个参数控制,不好直观判断动画执行了多久,而如果在pop动画完成回调的block里提交下一个动画,会不连贯(亲测,原因不详)。
转场动画怎么实现?
明明从A控制器跳往B控制器,各是各的页面,各是各的控件,怎么做到A里的控件变化形成了B的控件的效果?
的确,A和B是两个独立的页面,它们跳转过程需要动画的效果时,需要另外一个呈现于屏幕上的载体(或者称页面)来装那些做动画的控件,然后在动画完成、转场结束时,把这个载体移除掉,宣告转场结束,这个时候把真正的B的页面展示出来。
这就需要转场代理transitioningDelegate发挥作用了,具体做法和原理下文详述。
君凯商联网-iOS-字唐名僧
iOS 开发——登录页面动画、转场动画相关推荐
- iOS开发CoreAnimation解读之四——Layer层动画内容
iOS开发CoreAnimation解读之四--Layer层动画内容 一.引言 通过前几篇博客的介绍,我们可以了解到layer层可以设置许多与控件UI相关的属性,并且对于iOS开发,UIView层的属 ...
- html5怎么在index设置背景,index.html · huangliusong/HTML5Canvas知乎登录页面动态线条背景动画代码 - Gitee.com...
HTML5+Canvas知乎登录页面动态线条背景动画代码 body{ text-align: center; background: #F7FAFC; overflow: hidden; backgr ...
- 鸿蒙harmonyOS 方舟框架ARK使用ets的页面间转场动画的使用
鸿蒙harmonyOS 方舟框架ARK使用ets的页面间转场动画 文章目录 鸿蒙harmonyOS 方舟框架ARK使用ets的页面间转场动画 前言 使用步骤 1.代码,注意使用的位置 2.注释和逻辑 ...
- iOS开发-登录界面开发(6)Toast-Swift的使用-Swfit4.1_Xcode9.3.1
iOS开发-登录界面开发(6)Toast-Swift的使用-Swfit4.1_Xcode9.3.1 先看一下效果: 1.前面我们做了登录界面的UI,实现了网络请求,如果用户输入了错误的VIP号码,应该 ...
- IOS开发之——动画-转场动画(98)
一 概述 CATransition转场动画介绍 专场动画属性及过渡效果 示例(动画切换模拟转场动画) 二 CATransition专场动画介绍 nCATransition是CAAnimation的子类 ...
- iOS开发UI篇—iOS开发中三种简单的动画设置
[在ios开发中,动画是廉价的] 一.首尾式动画 代码示例: // beginAnimations表示此后的代码要"参与到"动画中 [UIView beginAnimations: ...
- fastadmin后台login登录页面增加canvas粒子动画背景
地址演示地址登录 <!DOCTYPE html> <html> <head><link rel="stylesheet" media=&q ...
- iOS开发--封装的几个小动画
1 一个简单的下拉加载动画,可以自定义动画的颜色,线宽等等. 具体实现就不写了,直接上Demo地址:Github 效果图: 2 一个简单的下载进度条,同样可以自定义动画的颜色,线宽等等. Demo地址 ...
- IOS开发之页面切换
从一个ViewController切换到另一个ViewController有下面几种方法: (1)addsubview方法切换视图 self.view addSubview:(加载的新页面); 相应的 ...
最新文章
- Day 6:在 Java 虚拟机上使用 Grails 进行快速 Web 开发
- 个推透传消息设置通知栏展示 ios_手机通知栏消息太多,这招教你关闭弹出消息,立刻清爽...
- POJ 2955 区间DP必看的括号匹配问题,经典例题
- JavaScript实现继承的方式,不正确的是:
- 举例说明string类和stringbuffer类的区别_String,StringBuilder,StringBuffer的区别
- Show Desktop Pro FAQ
- ping,python实现批量ping包工具--小案例v4优化版本
- Redis系列(二)-Hredis客户端设计及开源
- 2.1 软件开发生命周期模型
- centOS安装libX11
- quartz提示This scheduler instance is still active but was recovered by another instance in the cluster
- HFC网、FTTx技术、PON
- 【Asan】工欲善其事必先利其器——AddressSanitizer
- C# 使用DirectX中的Device类实现3D渲染
- CentOS7(8)安装/卸载MySQL
- vr企业视频展示如何制作
- c#写windows服务
- python 论文写作_AI基础:论文写作工具
- A simple webframe base on web.py
- 洛谷 P1162 填涂颜色 C++ 深搜 染色法