【iOS系列】-自定义Modar动画
【iOS系列】-自定义Modar动画.md
我们需要做的最终的modar动画的效果是这样的,
就是点击cell,cell发生位移,慢慢的到第二个界面上的。为了做出这样的动画效果,我们需要以下的知识。
1 - 设置modalPresentationStyle
我们可以通过下图看到不设置modalPresentationStyle的时候,modar以前也即首页已经消失了,
而当我们设置了nav.modalPresentationStyle = .custom
后,可以看到以前的界面没有被销毁,所以这时我们只需要设置好动画就好了
2 - 设置transitioningDelegate
我们还需要设置
nav.modalPresentationStyle = .custom
nav.transitioningDelegate = self
这样我们才可以进行自定义的动画,但是为了动画效果的封装,也为了减少控制器无关代码逻辑的冗余,我又写了一个动画类,让它来实现的代理方法
extension ZoomAnimator : UIViewControllerTransitioningDelegate{
}
//这样我们控制器中的代理就需要这样设置了:
nav.modalPresentationStyle = .custom
nav.transitioningDelegate = zoomAnimator
3 - 实现自定义动画协议类:ZoomAnimator
下图为我们简单的设置动画,
但是要想做到文章开头的效果,需要知道,点击的cell时的frame,以及放大后的frame,以及点击后的frame
【iOS系列】-自定义Modar动画的更多相关文章
- iOS学习笔记-自定义过渡动画
代码地址如下:http://www.demodashi.com/demo/11678.html 这篇笔记翻译自raywenderlick网站的过渡动画的一篇文章,原文用的swift,由于考虑到swif ...
- VCTransitionsLibrary –自定义iOS交互式转场动画的库
简介 VCTransitionsLibrary 提供了许多适用于入栈,出栈,模态等场景下控制器切换时的转场动画.它本身提供了一个定义好的转场动画库,你可以拖到自己工程中直接使用;也提供了许多拥有不同转 ...
- iOS:自定义模态动画 --UIPresentationController
UIPresentationController :展示控制器,是iOS8的一个新特性,用来展示模态窗口的.它是所有模态控制器的管理者. 即: 1> 管理所有Modal出来的控制器 2> ...
- iOS系列译文:自定义Collection View布局
原文出处: Ole Begemann 译文出处: 黄爱武(@answer-huang).欢迎加入技术翻译小组. UICollectionView在iOS6中第一次被介绍,也是UIKit视图类中的一 ...
- iOS开发自定义转场动画
1.转场动画 iOS7之后开发者可以自定义界面切换的转场动画,就是在模态弹出(present.dismiss),Navigation的(push.pop),TabBar的系统切换效果之外自定义切换动画 ...
- iOS-自定义Model转场动画-仿酷我音乐播放器效果
周末,闲来无事,仿写了酷我音乐播放器效果: 效果图如下: 实现思路: 1.实现手势处理视图旋转 2.自定义Model动画: 1.手势是利用了一个UIPanGestureRecognizer手势: 注意 ...
- iOS系列 基础篇 05 视图鼻祖 - UIView
iOS系列 基础篇 05 视图鼻祖 - UIView 目录: UIView“家族” 应用界面的构建层次 视图分类 最后 在Cocoa和Cocoa Touch框架中,“根”类时NSObject类.同样, ...
- iOS系列 基础篇 06 标签和按钮 (Label & Button)
iOS系列 基础篇 06 标签和按钮 (Label & Button) 目录: 标签控件 按钮控件 小结 标签和按钮是两个常用的控件,下面咱们逐一学习. 1. 标签控件 使用Single Vi ...
- iOS系列 基础篇 08 文本与键盘
iOS系列 基础篇 08 文本与键盘 目录: 1. 扯扯犊子 2. TextField 3. TextView 4. 键盘的打开和关闭 5. 打开/关闭键盘的通知 6. 键盘的种类 7. 最后再扯两句 ...
随机推荐
- lnmp环境的使用
lnmp环境的使用 安装的软件都安装到了:/usr/local 管理nginx service nginx start|stop|restart|reload 管理mysql 直接执行mysql即可登 ...
- 数组dome
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...
- 2014·NOIP 新的历程,新的开始
10.12 从9月1号开始奋战,到了今天终于重新把所有普及和提高的复赛题全部AC了.40多天AC130多道想想也是醉了,也许是机房一群大神给予我的压力吧. 想想暑假,整天玩游戏,与此同时,CZL.CY ...
- cf468B Two Sets
Little X has n distinct integers: p1, p2, ..., pn. He wants to divide all of them into two sets A an ...
- PHP简单留言板
<?php header("Content-Type:text/html;charset=utf8"); $filename = "message.txt" ...
- 【Hihocoder1034】毁灭者问题(splay,树状数组)
题意: 假设你拥有 n 个魔法单位,他们从左到有站在一行,编号从 1 到 n. 每个单位拥有三项属性: si: 初始法力. mi: 最大法力上限. ri: 每秒中法力回复速度. 现在你操纵一个毁灭者, ...
- 网上找的一篇博文,原文搞错了,应该是\r\n,本文已改正!——回车CR和换行line feed
"回车"(carriage return)和"换行"(line feed)与 ASCII表 关于“回车”(carriage return)和“换行”(line ...
- codeforces 946G
题意: 有一个长度为n的数组a.你可以删除一个位置之后进行操作,一次操作可以把任意位置上的数字变成任意的值,问最少需要多少操作能使得数列变成严格上升的. n<=200000 分析: 如果没有删除 ...
- 微信小程序,不同的输入框显示
<!--pages/index/Component/TextInput/TextInput.wxml--> <view class="viewTitle"> ...
- ,java反射机制实现拦截器
实现一个拦截器必须要实现一下几个类: 1 目标类接口:目标类要实现的接口. package com.lanvis.reflect; public interface ITarget { pub ...