iOS 呈现动画为“推”的视图控制器(左右动画)

2024-01-09

目前,我有一个视图控制器呈现其他视图控制器。我想做的是重新创建推送视图控制器时使用的默认动画。

我目前的做法是:

FirstViewController:

@IBAction private func push(sender: AnyObject) {
    let vc = UIStoryboard(name: "Main", bundle: nil).instantiateViewControllerWithIdentifier("SecondViewController")

    let transition = CATransition()
    transition.duration = 0.5
    transition.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut)
    transition.type = kCATransitionPush
    transition.subtype = kCATransitionFromRight

    view.window?.layer.addAnimation(transition, forKey: kCATransition)

    presentViewController(vc, animated: false, completion: nil)
}

SecondViewController:

@IBAction private func pop(sender: AnyObject) {

    let transition = CATransition()
    transition.duration = 0.5
    transition.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut)
    transition.type = kCATransitionPush
    transition.subtype = kCATransitionFromLeft

    view.window?.layer.addAnimation(transition, forKey: kCATransition)

    dismissViewControllerAnimated(false, completion: nil)
}

它几乎可以工作,但我有一个奇怪的行为,在视图控制器之间转换时出现一种黑屏/闪烁。我已经尝试过改变window.backgroundColor但这并不能解决问题。

提前致谢 0_0...


问题只是在于您所做的不是如何自定义当前/关闭过渡的动画。苹果已经为你提供了一个清晰的、完善的、官方的方式来做到这一点,而你所做的并不是它。您需要为您呈现的视图控制器提供一个transitioningDelegate随着实施animationControllerForPresentedController: and animationControllerForDismissedController:,并实现 UIViewControllerAnimatedTransitioning 协议,可能还有自定义 UIPresentationController 子类。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

iOS 呈现动画为“推”的视图控制器(左右动画) 的相关文章

  • 以弯曲格式显示文本

    我正在寻找以曲线格式绘制一些文本 我使用哪个控件并不重要 UITextField UILabel or UITextView 我只想显示如图所示的文本 仍在寻找解决方案 请帮忙 查看此链接 https nodeload github com
  • iOS 解决方法:在没有 CSS 属性的情况下平滑滚动 滚动行为:平滑?

    编辑 我找到了一个 jQuery 解决方案 https codepen io chriscoyier pen dpBMVP https codepen io chriscoyier pen dpBMVP这个确实可以在 iOS 上运行 我想
  • 如何将 LC_LOAD_DYLIB 命令插入 Mach-O 二进制文件或将静态库加入现有二进制文件 (IOS)

    这是我第一次在 stackoverflow 上提问 我很绝望 我的任务是加载 dylib 或将静态库加入到 IOS 设备的现有可执行文件中 我将使用static void attribute constructor initialize v
  • 在视图之间传递核心数据实体变量

    我无法理解如何在视图之间使用核心数据实体变量 为了更好地理解我的问题是什么 我的代码如下 View A 基本上 您必须将完整预算实体或相关预算实体的 ID 从视图 A 传递到视图 B 由于不知道您的应用程序的视图层次结构和逻辑 我假设您选择
  • iOS 防止计时器 UILabel 在数字变化时“晃动”

    我有一个UILabel它以以下格式显示计时器的输出MM ss SS 分 秒 厘秒 但是随着厘秒宽度的变化 它从左向右 摇动 例如 11 比 33 窄 有什么办法可以减轻这种情况吗 我尝试过将其居中 给它固定的宽度 但它们似乎没有帮助 从iO
  • XCode 4.5 给我“SenTestingKit/SenTestKit.h”文件未找到,但适用于 4.4.1

    我刚刚安装了 XCode 4 5 它在我现有的项目之一上给了我一个 SenTestingKit SenTestingKit h 文件未找到错误 此错误仅发生在 XCode 4 5 中 但它在 4 4 1 上编译正常 我已经检查过SenTes
  • 在 HTML5 iOS 7 / iOS 8 中显示十进制键盘

    经过几个小时的搜索后 我只是有一个简单的问题 是否有可能在网络浏览器输入字段中显示小数键盘 input type number 只显示数字 但我需要在左下角使用逗号或点 我尝试过任何事情 pattern step等等 但没有显示十进制键盘
  • Objective-c 中的块递归

    当执行涉及 Objective C 块的递归时 我在 iOS 应用程序中收到 EXC BAD ACCESS 信号 这是简化的代码 void problematicMethod FriendInfo friendInfo onComplete
  • 如何解决 CoreData mogenerator 未找到问题

    我收到如下所示的错误 我不知道我错过了什么 我该如何解决这个问题 如下图所示 Users nischalhada Documents XcodePro mnepalnews revisited 2 0 CoreData mogenerato
  • 如何在 iOS 中更改部分透明图像的颜色?

    我有一个具有部分透明度的单色图像 我有正常版本和 2X 版本的图像 我希望能够用代码将图像着色为不同的颜色 下面的代码适用于普通图像 但 2X 最终会出现伪影 正常图像可能有类似的问题如果是这样 由于分辨率的原因我无法检测到它 UIImag
  • 所需框架与静态库

    构建现代框架 https developer apple com videos play wwdc2014 416 says 每个应用程序都有自己的自定义框架副本 https stackoverflow com a 15262463 242
  • iOS:提高图像绘制速度

    我有一系列想要制作动画的图像 UIImageView支持一些基本的动画 但不足以满足我的需求 我的第一个方法是使用UIImageView并设置image当图像属性 这太慢了 速度慢的原因是图像的绘制 这让我感到惊讶 我以为瓶颈会加载图像 我
  • 关于窗口层次结构的警告

    我的调试器中出现这样的警告 这是什么意思 Warning Attempt to present
  • Xcode 中的 iOS 9 警告 - 此文件设置为针对早于项目部署的版本进行构建。功能可能有限

    我刚刚将我的 Mac 更新到最新的操作系统 并将 Xcode 更新到最新版本 现在我收到此警告 但我不知道该由谁来删除它 也不知道它的真正含义是什么 有人可以向我解释一下吗 Thanks Select Main storyboard in
  • 个人帐户开发者之间的 Apple 开发/分发证书

    我一直在到处寻找有关处理证书的正确答案 想象一下以下帐户 Joe拥有个人 Apple 帐户 但他根本不会编码 他只是发布了该应用程序并将其称为自己的 Bob还有一个个人 Apple 帐户 Bob 是一位编码专家 Joe 付费让他开发他的第一
  • SiriKit 错误:此应用程序不支持捐赠意图

    我在 Xcode 10 iOS 12 Beta 中捐赠自定义意图时遇到问题 我创建了一个在我的主应用程序目标和 OrderIntent 目标之间共享的自定义框架 我创建了一个 intentdefinition 文件 并将目标成员资格设置为我
  • 架构armv7的重复符号

    尝试在我现有的应用程序中使用 Layar SDK 时出现以下错误 我该如何解决这个问题 Ld Users pnawale Library Developer Xcode DerivedData hub afxxzaqisdfliwbzxbi
  • 我怎样才能勾勒出文本字体?

    我想在边框 轮廓 中显示另一种颜色的文本 我正在尝试使用在 MapOverlayView 中显示文本 text drawAtPoint CGPointMake 0 30 withFont UIFont fontWithName Helvet
  • UICollectionView 拖放文件夹创建

    我正在使用 UICollectionView 创建 iOS 画廊应用程序 我希望用户能够拖放图像来重新排序图库并创建文件夹 类似于 iPhone 上的主屏幕 我发现了以下内容tutorial http nshint io blog 2015
  • 指定访问组时出现 KeychainItemWrapper 错误

    相当长一段时间以来 我一直在使用 KeychainItemWrapper 的 ARC 版本成功读取和写入私有钥匙串项目 我现在正在努力将我的 iOS 应用程序转换为使用共享访问组 以便我的 2 个共享相同应用程序前缀的应用程序可以访问钥匙串

随机推荐

  • Android 网络统计

    是否可以创建一个在作为后台进程运行时获取网络活动 统计信息的应用程序 或者只是制作一个侦听特定端口上的流量的应用程序 Thanks M 也许是碰碰运气 但我使用过的大多数设备都有 proc 文件系统 您应该能够从 proc net 条目之一
  • System.Web.Script.Serialization.JavaScriptSerializer 还是 System.Runtime.Serialization.Json.DataContractJsonSerializer?

    两者有什么区别 为什么你会使用其中一种而不是另一种 在这里找到 http aaron powell spaces live com blog cns 91A824220E2BF369 150 entry http aaron powell
  • CreateGraphics 和 Paint 事件的 Graphics 对象有什么区别?

    有人可以解释一下两者之间的区别吗Graphics传递的对象pevent Graphics以及通过调用返回的那个this CreateGraphics 每当一个Paint事件被引发 你会得到一个Graphics要绘制的对象 这被传递为peve
  • 如何在 Node.js 中强制重置套接字?

    我从 Node js 应用程序收到 read ECONNRESET 错误 可能是客户端或服务器连接 我不确定 作为修复这些问题的一部分 我想做一些本地测试 最好为其设置自动化测试 我想编写一个节点客户端和服务器 在连接建立后立即对其进行硬重
  • 无法在 Android 上获取 expo 推送令牌

    我正在构建一个 React 本机应用程序 它基于Expo https expo io 我还想结合利用 Expo 的推送通知功能Firebase 实时数据库 https firebase google com docs database 我基
  • 如何检查 javascript var 中是否存在文本

    我有一个包含一些文本的变量 我想检查一下文本中是否有某个单词 例子 var myString This is some random text 我想检查一下 随机 这个词是否存在 谢谢你的帮助 如果您想专门测试 随机 一词 可以使用如下正则
  • 刷新布局并更新数据

    我有以下显示数据网格的 pyqt 代码 我能够单击一个字母 打开一个文本输入框并成功将数据保存到网格并在终端中打印更新的数据 我努力了update and repaint 但他们什么也没做 并打电话给createLayout 方法抛出错误Q
  • 浏览存储库中标记版本的列表?

    我正在尝试检查 OpenSSL 1 0 2a 而不是 Master OpenSSL 已标记版本 我正在尝试浏览它们以确定实际名称是什么 我知道它们有 1 0 0 1 0 1 和 1 0 2 但它们的命名更复杂 根据OpenSSL Git 存
  • 如何通过svn Eclipse插件解决树冲突

    我最近在我的eclipse中安装了svn插件 我想知道如何通过它解决我的项目的树冲突 等待您宝贵的回复 右键单击项目 选择Team gt Show Tree Conflict gt Mark as Resolved
  • Android 5.0.2 - 短信广播接收器 - 无法使其工作

    我正在小米红米Note 3上进行测试 我需要的很简单 注册广播接收器以接收传入的短信 收到消息后 只需阅读即可 看来无论我如何尝试 我都无法获得接收器注册 从谷歌文档来看 从 4 4 开始 任何应用程序都不应该吞下该事件 并且每个监听的应用
  • EnableViewState 在 DropDownList 中不起作用

    default aspx 页面有一个DropDownList仅当它不是时才在后面的代码中填充postback 当选择一个值时 将调用一个方法来填充Literal与选定的值 它按预期工作 问题是当我将页面设置为不EnableViewState
  • 如何让console.log输出getter结果而不是字符串“[Getter/Setter]”?

    在此代码中 function Cls this id 0 Object defineProperty this id get function return this id set function id this id id enumer
  • .NET 主要版本和发布分支的 git 分支策略

    对于包含多个类库的 NET 项目 我当前使用以下 git 分支策略 feature 1 master v PR v release 7 0 v I branch
  • iPhone 7/7plus 上的空 snapshotView

    我的第一个问题是 最近我将 Xcode 更新到 8 并且resizableSnapshotView该方法在某些模拟器上无法正常工作 snapshotView 在所有 iOS9 10 的测试设备和 iPhone6s 下的模拟器上都运行良好 但
  • Qt 安卓.获取设备屏幕分辨率

    我正在 Android 设备上使用 qt 5 3 进行开发 我无法获取屏幕分辨率 对于旧的 qt 5 版本 此代码有效 QScreen screen QApplication screens at 0 largh screen gt ava
  • 通过合并日期时间和日期列上的两个 DF 查找昨天的高价

    我正在尝试合并两个 df 其中一个 df 有一个datetime列 另一个只有一个date柱子 我的申请是找到昨天的high使用 OHLC 数据集的价格 我在下面附加了一些起始代码 但我将描述我正在寻找的内容 鉴于这种intraday数据集
  • 从 Git 中删除过时的提交

    我已经进行了一些测试提交 以测试提交挂钩 并且始终将索引重置为我最后一次正常提交 现在这些过时的提交仍然存在 gt git reflog fcdabf7 HEAD 0 reset moving to fcdabf7e01845d6f000f
  • 如何在javascript中完全获取具有重复键的JSON

    我试图从 url 获取 JSON 但在响应对象中重复的键被删除 有没有什么方法可以完全获取它而不删除重复的键 这是我的js代码 document ready function var s getJSON new json console l
  • 关键帧不是关键帧? AV_PKT_FLAG_KEY 未解码为 AV_PICTURE_TYPE_I

    解码标志中包含 AV PKT FLAG KEY 的数据包后 我原本期望得到 I 帧 但结果却得到了 P 帧 拨打电话后 avcodec decode video2 codecCtx frame frameFinished packet mp
  • iOS 呈现动画为“推”的视图控制器(左右动画)

    目前 我有一个视图控制器呈现其他视图控制器 我想做的是重新创建推送视图控制器时使用的默认动画 我目前的做法是 FirstViewController IBAction private func push sender AnyObject l