TransformAnimation - 一个超简单的导航转换动画
TransformAnimation 实现了一个导航转换动画,用于替换系统导航控制器默认的 push 动画:
当你点击第一个 view controller 的 Butto,转换动画开始播放。
这个动画首先会从位于视图中央的大图片开始,然后快速移动并缩小到右下角。
动画结束时,第二个 view controller 呈现。
git 地址:https://gitee.com/kmyhy/transform-animat
用法
首先,将这 2 个文件拖到项目中:
- UIView+Extension.swift
- TransformAnimator.swift
创建两个 view controller,实现 TransformAinmationViewController ,包括这两个属性:
protocol TransformAnimationViewController {var animator: TransformAnimator { get }var animatingView: UIView { get }
}
例如,假设有两个 view controllr: FirstViewController 和 SecondViewController,它们必须这样实现这 2 个属性:
var animator = TransformAnimator()
var animatingView: UIView {return imageView
}
注意 animator 是存储属性,你不能把它放到扩展中去实现。animatingView 是一个 UIView,也就是你即将对它进行动画的那个 view。通常,它可能是一个 UIImageView(也可能是一个 IBOutlet),比如像上图中的瓶子图片。
然后在 它们的 viewDidAppear 方法中:
navigationController?.delegate = animator
同时,你也需要在 viewDidDisappear 方法中添加:
navigationController?.delegate = nil
Build & run. 恭喜! 你的自定义导航转换动画大功告成了!
TransformAnimation - 一个超简单的导航转换动画相关推荐
- 从零学习pytorch 第1课 搭建一个超简单的网络
课程目录(在更新,喜欢加个关注点个赞呗): 从零学习pytorch 第1课 搭建一个超简单的网络 从零学习pytorch 第1.5课 训练集.验证集和测试集的作用 从零学习pytorch 第2课 Da ...
- 一个超简单的反编译任务(IDAPro、X32dbg)
一个超简单的反汇编任务 所需工具 IDAPro.X32dbg.Visual C++ 6.0 实验步骤 首先,我们新建一个简单的程序并编译运行. 这里笔者建立了一个弹窗程序,运行结果如下: 进行IDA逆 ...
- 一个超简单的android任务列队(排队)3
一个超简单的android任务列队(排队)3 上一篇讲到了列队中的任务超时,这一篇继续对列队任务进行扩展,新增插入任务到列队中,可以实现插队功能,实现异步请求列队.来看代码,在LineUpTaskHe ...
- java jsp网页计算器_使用JSP制作一个超简单的网页计算器的实例分享
实现一个简单的计算器程序,要求:使用jsp+javabean模式实现. 项目源代码如下: 文件:calculator.jsp 简单的计算机 进行计算 --%> cal.calculate(); ...
- 一个超简单的Qt数字按键
由于只需要几个数字按键,没必要加入软件盘,在输入框旁边直接加了一块数字键,超简单,删除键使用的键盘事件,其余均为在lineedit插入字符,超级easy!对于简单按键需求的同学有参考价值! 1.在界面 ...
- 【小白学PyTorch】1.搭建一个超简单的网络
文章目录: 1 任务 2 实现思路 3 实现过程 3.1 引入必要库 3.2 创建训练集 3.3 搭建网络 3.4 设置优化器 3.5 训练网络 3.6 测试 1 任务 首先说下我们要搭建的网络要完成 ...
- xsd文件转图片_如何将图片转化为PDF格式?分享一个超简单的方法给你
如何将图片转化为PDF格式?有些朋友经常需要将图片转换成PDF格式文件,这样比较方便保存和传输.熟悉文件转换的朋友是知道该怎么操作的,不了解的朋友不用担心,今天我来教大家一个方法,能够帮助我们简单快速 ...
- 用Python做一个超简单的小游戏(一听就懂)
前言 有的人可能学过一点Python基础,但不知道干什么好.今天就教大家做一个简单的小游戏 未经允许,禁止转载 文章目录 前言 写它会用到 源码先抛出来 知识讲解 random 介绍 语法 方法参数表 ...
- Android超简单底部导航ImageView+TextView+FramLayout(一)
废话前言 刚工作的时候就事采用这种方式实现的底部导航,方便快捷,重要的是好理解. 我将采用我觉得最清晰的思路实现这种方式 一.创建主页面 为了便于查看,我只写了两个tab,其他多的照葫芦画瓢就行了 & ...
最新文章
- HDU 1166 敌兵布阵【树状数组】
- 在ASP程序设计中在使用Response对象
- edittext 属性
- cesium 修改 鼠标 样式
- Hibernate使用原生SQL适应复杂数据查询
- Linux内存管理--物理内存分配【转】
- 2使用教学_建水三中智能交互式液晶一体机设备投入使用
- java arraylist线程安全_面试题1:ArrayList 是线程安全的吗?如果要实现一个线程安全的List应该怎么做?...
- 解决LInux更新慢的问题, 更换国内软件源
- Docker实战6 之构建自己的docker镜像
- 如何使用ant_从 0 开始,成为 Ant-Design Contributor
- 如何用计算机接收光纤网络电视,家里只有一根网络电缆. 电脑和电视如何共享互联网?如何在机顶盒和路由器之间建立连接?...
- Xshell远程连接阿里云
- 组件化拆分(三)-Todos案例——单页面-详细代码
- 搭建turnserver(转) 稍加整理
- 前端程序员如何快速转型全栈工程师(基础版)
- 控制算法--1 二值位式控制算法
- 游戏业务面试准备系列1-常见业务问题汇总
- c语言程序设计的实验报告,C语言程序设计实验报告
- 基于阿里云容器服务的微服务实践 - Part 1. 微服务与Docker
热门文章
- postgres vacuum full 和 vacuum
- RMAN完全恢复与不完全恢复测试
- 悠哉网李代山与实力派孙红雷有点像
- 3ds Max快速环境闭塞的使用
- git 提交时报错:Branch ‘master‘ set up to track remote branch ‘master‘ from ‘origin‘.
- 作为开发者必须知道的5个安卓应用推广方式
- 不知不觉好感为“零”!录取机会少一半-程序员面试时,有哪些减分项?(注意避坑)
- 【每日新闻】刘多:工业互联网对我国制造业高质量发展起到重要的推动作用...
- Spring MVC异常统一处理(异常信息的国际化,日志记录)
- oracle dba 创建视图,拥有dba权限的情况下创建视图报ORA-01031: insufficient privileg错误...