UINavigationController 自定义转场动画(模仿淘宝App跳转)
制作目的
- 想要自定义系统转场动画速度
- 放弃不顺畅的 NavigationBar 隐藏消失
- 干脆直接干掉每个页面的 NavigationBar,在使用 UINavigationController 管理的同时,每个页面的 NavigationBar 都使用自定义的 UIView, 这样既定制程度高又可以在不需要 NavigationBar 的页面无缝对接,包括一些之前 NavigationBar 动画也可以更轻松的利用自定义的 UIView 的适配动画来更灵活的实现
实现功能
- 可以设置一个自己认为舒服的速度进行转场动画(该动画模仿系统转场动画效果,如果需要其他转场动画可以替换我的 LGFTransition 类,或者修改 LGFTransition 类的代码)
- 这个动画速度同时也舒服的作用到边缘手势拖动 POP 返回上
使用方式
- pod 'LGFTransition' 或者 LGFTransition
- 接着在 AppDelegate 中导入头文件 UINavigationController+LGFAnimatedTransition.h
#import "UINavigationController+LGFAnimatedTransition.h" @interface AppDelegate () @end @implementation AppDelegate - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // 在这里配置是否使用自定义转场动画 // Configure whether to use a custom transition animation here [UINavigationController lgf_AnimatedTransitionIsUse:YES]; //[UINavigationController lgf_AnimatedTransitionIsUse:YES transitionDuration:1.0]; return YES; }
- 在 didFinishLaunchingWithOptions 方法中调用 UINavigationController 由分类添加的新方法 lgf_AnimatedTransitionIsUse
- 传 NO 或不掉用该方法 使用系统效果, 调用该方法并传 YES 启用本效果
- transitionDuration 动画想要执行的时间,默认 0.5 秒
Demo 里还添加了一个可以让普通按钮变成pop返回按钮的 UIButton 父类
- 自定义 NavigationBar 上的 UIButton 直接继承 LGFNavigationBackButton 就可以有pop返回的功能了
效果展示
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
安卓巴士Android开发者门户
一、开源库 1.SimpleRatingBar 简单好用的ratingbar 2.NumberRain Android自定义控件仿黑客帝国数字雨 3.CacheWebView 突破系统WebView缓存的空间限制的WebView 4.luckly_popup_window Android开发使用PupopWindow在指定View的上下左右动态显示菜单列表,模仿IOS底部弹窗列表。 5.PhotoEditor 图片编辑器 二、工具 1.LayoutMaster 插件基于Layout Inspector,强化了这个工具,故取名Layout Master。 2.aliyun-sms 一个应用阿里云短信推送服务的Ruby Gem。 3.tray 支持多进程的Android的SharedPreferences替代品 4.gradle For more information about Gradle, please visit: https://gradle.org 5.UETool UETool 是一个各方人员(设计师、程序员、测试)都可以使用的调试工具。它可以作用于任何显示在屏幕上的 vi...
- 下一篇
Flutter学习总结系列----第一章、Flutter基础全面详解
版权声明:本文为博主原创文章,未经博主允许不得转载。https://www.jianshu.com/p/2c9867e737a1 转载请标明出处:https://www.jianshu.com/p/2c9867e737a1 本文出自 AWeiLoveAndroid的博客 Flutter学习总结: 更多相关内容和示例代码,请看我的github:https://github.com/AweiLoveAndroid/Flutter-learning 第1章、基础入门 1.1 Flutter简介 1.1.1 跨平台框架的发展历史 详情请看我之前写的博客 安卓开发方式的进化之路 这里就以一张图简单的讲一下: 跨平台框架的发展历史 1.1.2 Flutter的起源 2015年, Google 内部开始测试另一种高性能的编程方式,那就 Google 的 Sky 项目。Sky 项目使用网页开发语言Dart开发原生Android 应用,强调应用的运行速度和与 Web 的高度集成。Sky将其Web后端也带到了移动开发领域。Sky不依赖于平台,其代码可以运行在Android、iOS,或是任何包含Dart虚拟...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
-
Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8编译安装MySQL8.0.19
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
推荐阅读
最新文章
- CentOS7设置SWAP分区,小内存服务器的救世主
- 设置Eclipse缩进为4个空格,增强代码规范
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS6,CentOS7官方镜像安装Oracle11G
- Hadoop3单机部署,实现最简伪集群
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS7安装Docker,走上虚拟化容器引擎之路