在透明导航栏和半透明之间过渡

2024-03-22

在苹果最近发布的远程应用程序中,我注意到导航栏的行为方式是独特的,但我无法重现它。弹出“正在播放”视图控制器时,“正在播放”视图控制器的导航栏保持透明,而库视图控制器的导航栏也保持半透明(屏幕截图 1)。我试图弄清楚他们是否使用两个导航控制器或仅使用一个。就我个人而言,我觉得他们只使用其中一个有两个原因(1)启用了交互式弹出手势; (2) 当您按下库视图控制器中的“正在播放”按钮时,就在当前播放屏幕完成“推送视图控制器”动画之前,导航栏变得透明(屏幕截图 2)。这是我在推动视图控制器(将导航栏设置为透明)时遇到的行为。所以我的问题是:Apple 如何呈现两个视图控制器的两个导航栏,就好像它们是单独的一样(如屏幕截图 1 所示),甚至栏按钮、导航标题等...在切换时都是 100% 不透明度(通常在按下/弹出前一个视图控制器的按钮和标题会随着新控制器的按下而消失)。我尝试过使用条形色调颜色viewDidAppear and viewWillAppear在两个视图控制器中,但无法重现相同的行为,并且无法防止栏按钮消失。

天哪,我希望我已经解释得很好了,光是想想我就感到困惑!

Screenshot 1 (Popping): Screenshot 1

Screenshot 2 (Pushing): Screenshot 2


我刚刚下载了该应用程序以确保。使用两个不同的导航栏。您可以通过使用交互式弹出手势来查看这一点。请注意底部视图控制器上的导航栏如何滑入和滑出。在正常的推送和弹出转换期间,导航项只是在现有栏上淡入和淡出,而栏是静止的。这就是当前播放的视图控制器被推送之前所发生的情况。

如果您快速查看,在正在播放的视图控制器动画期间,您可以看到底部导航栏消失。

根据我对 UIKit 行为的经验以及我在应用程序中看到的内容,我认为会发生以下情况:

album_vc= 底部列表视图控制器nowplaying_vc= 顶视图控制器

  • On nowplaying_vc's viewWillAppear:

    • 使用以下命令将导航栏设置为隐藏[self.navigationController setNavigationBarHidden:YES animated:YES];。由于这是在动画块中,这将使导航栏在推送动画期间滑出。
    • Set [UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent;对此非常确定,因为请注意状态栏样式的转换中没有动画。它只是变成白色。
  • On nowplaying_vc's viewWillDisappear:

    • 将导航栏设置为显示使用[self.navigationController setNavigationBarHidden:NO animated:YES];。由于这是在动画块中,这将使导航栏在弹出动画期间滑入。
    • Set [UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleDefault;再次注意,在交互式弹出手势期间,状态栏仅发生变化而没有动画。

实现导航栏的透明外观nowplaying_vc,您可以使用空图像([UIImage alloc]) with setBackgroundImage:forBarPosition:barMetrics:.

由于应用程序不旋转,我们无法确定导航栏是否打开nowplaying_vc是另一个导航控制器的一部分,或者只是顶部的导航栏,位置为UIBarPositionTopAttached。据我们所知,那里甚至没有导航栏,只有一个后 V 形图像视图(后栏按钮由图像视图和按钮组成)。

我认为状态栏样式已更改viewWillAppear: and viewWillDisappear:由于交互弹出手势时存在不自然的感觉。我建议使用动画过渡,或者更好的是,使用新的基于视图控制器的状态栏样式,系统会自行对过渡进行动画处理。


现代 API 更新:

您应该使用animateAlongsideTransition:completion: or animateAlongsideTransitionInView:animation:completion:API,而不是依赖于隐式动画viewWillAppear: and viewWillDisappear:.

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

在透明导航栏和半透明之间过渡 的相关文章

  • AFNetworking 上传图片

    我看过一些例子 但我认为我的问题可能出在 PHP 中 我正在尝试使用 AFNetworking 将图像从 iPhone 上传到服务器 这是我的 obj c 代码 IBAction uploadButtonClicked id sender
  • 核心数据:为什么必须调用重新加载数据才能使我的应用程序运行?

    我花了整个晚上调试一个简单的应用程序 该应用程序从网络检索一张图像 是的 是的 旨在让我的生活更轻松 并将其显示在表格视图中 我这样做是为了练习学习核心数据 在我修复它之前 错误消息显示如下 2012 09 30 06 16 12 854
  • 无需 iPhone 6 Plus 即可预览 iOS 应用程序

    我已经在 Yosemite 中使用 iPhone 6 和 Quicktime 完成了 iOS 应用程序预览 视频 但我无法在 iTunes Connect 中为 iPhone 6 上传它 而且我没有 iPhone 6 设备 有没有办法在没有
  • PhoneGap 1.4 封装 Sencha Touch 2.X - 性能怎么样?

    我正在构建一个多平台平板电脑应用程序 仅使用其 Webview 使用 Phonegap 1 4 对其进行包装 然后使用 Sencha Touch 2 框架发挥我的魔力 我所说的多平台是指 iOS 5 X 和 Android 3 0 目前 到
  • 将语音添加到自定义 UIMenuController

    我创建了一个自定义UIMenuController in a UIWebView但它似乎摆脱了 说出选择 选项UIMenuController在那之后 所有测试设备上的 偏好设置 中都打开了发言选择选项 并且它出现在其他应用程序中 包括非
  • iOS NSURLSession,如何在didCompleteWithError中重试

    我想在我的服务器上尝试一次调用 直到成功为止 我想每 30 秒尝试一次 所以我使用 NSURLSession 进行通话 NSURLSessionDownloadTask task self session downloadTaskWithR
  • iOS uiwebview 在 WebThread 中崩溃

    我正在寻求一些建议或帮助诊断我所看到的这次崩溃 目前 我认为这可能是一个 webkit 错误 但一切皆有可能 因此请提供您可能有的任何见解 Incident Identifier AEB8EE37 E5D4 4975 97F4 2B2038
  • UITesting、XCTest 当前 ViewController 类

    简单的问题 我有一个按钮可以执行到下一个视图控制器的操作 我想写 UI XCTest 来告诉我它是否打开了我想要的视图控制器 UI 测试框架无法访问您的应用程序代码 这使得无法对实例进行类断言 你不能够directly告诉屏幕上的控制器的类
  • 在回调函数中调用目标c函数

    如何在回调函数中调用目标c函数 回调函数 static OSStatus inputRenderCallback void inRefCon AudioUnitRenderActionFlags ioActionFlags const Au
  • 如何区分 iTunes Connect / Apple TestFlight 上的 STAGE 和 PRODUCTION 版本?

    阶段构建与阶段服务器的对话 阶段服务器与生产服务器尽可能相同 以用于测试目的 生产构建与生产服务器的通信 生产服务器存储真实的关键数据 这些构建本质上是针对同一应用程序的 但是 iTunes Connect 界面将向您显示以下内容 即构建由
  • 使用自动布局、IB 和字体大小时表头视图高度错误

    我正在尝试为我的 uiTableView 创建一个标题视图 不是节标题 我已经有了 我已经在界面生成器中设置了一个 XIB 所有的连接都已连接好并且运行良好 除了桌子没有给它足够的空间 我的问题是表格顶部与表格标题有一点重叠 我的 XIB
  • 使用 Quartz 创建 PDF 注释 (iOS)

    有人设法使用 Quartz 在现有 PDF 中编写自定义注释吗 我已经使用 CGPDFDocumentRef 等渲染了 PDF 现在工作正常 我成功地阅读了 Annots 字典 if CGPDFDictionaryGetArray page
  • 如何编辑应用程序包中的文件?

    在我的应用程序中 我从存储在捆绑资源中的 CSV 文件加载数据 但是 我希望能够在用户点击 更新 按钮时以编程方式更新此文件 有没有办法以编程方式更改应用程序包中的资源 这是我用来访问该文件的代码 NSString path NSBundl
  • 在 ios 版 Ionic 中接收 URL

    我正在使用离子框架 我正在尝试设置一种从另一个应用程序接收网址的方法 就像 您在浏览器中 单击共享 然后将链接发送到另一个应用程序 我的应用程序 我找到了这个cordova https stackoverflow com questions
  • 在 Swift 中以编程方式为 iOS 制作带有名字首字母的图像,例如 Gmail

    我需要在 UITableView 中显示与其姓名相对应的每个用户的个人资料图片 在下载图像之前 我需要显示一张带有他名字的第一个字母的图像 就像在 GMail 应用程序中一样 如何在 Swift for iOS 中以编程方式执行此操作 不需
  • 使用 ZBarSDK 时 iPhone 相机失去自动对焦功能

    我正在开发一个应用程序 用户可以选择是否要扫描条形码或拍摄某物的照片 为了拍照 我正在使用UIImagePickerController照常 为了扫描条形码 我使用 ZbarSDK 1 2ZBarReaderViewController 拍
  • cameraOverlayView 防止使用 allowedEditing 进行编辑

    在我的应用程序中 使用以下行在拍摄照片后对其进行编辑 移动和缩放 效果很好 imagePicker setAllowsEditing YES 但如果我还使用cameraOverlayView 则编辑模式将不再起作用 屏幕出现 但平移和捏合手
  • 在 UITableView 的部分标题文本下方添加一些边距

    我已经设计了标题文本的样式 func tableView tableView UITableView cellForRowAtIndexPath indexPath NSIndexPath gt UITableViewCell let ce
  • 当 ViewController 从 UIStoryboard 实例化时,isMemberOfClass 返回 no

    我有一个 OCUnit 测试类 PatientTestViewControllerTests 下面是界面 interface PatientTestViewControllerTests SenTestCase property nonat
  • 无需越狱即可检测iOS9上哪个应用程序处于前台

    我正在尝试记录用户在 iOS9 上的个人应用程序使用情况 我宁愿它不会使用越狱有限的解决方案 不言自明 在越狱手机上执行此应用程序的变体应该不难 https www andyibanez com create mobilesubstrate

随机推荐

  • 一次播放多个声音?

    我在一个视图上有 6 个声音 然而我想要它 这样我就可以一次播放多个声音 所以你点击声音 1 声音 1 正在播放 然后声音 2 播放 当声音 1 仍在播放时 但此时我按声音1 声音1播放 按声音2 声音2播放 但声音1停止 这是音频部分的代
  • 当我们有 LinkedBlockingQueue 时,为什么还要使用 ConcurrentLinkedQueue?

    我为什么要使用ConcurrentLinkedQueue当我有LinkedBlockingQueue 我知道ConcurrentLinkedQueue是非阻塞的但是LinkedBlockingQueue可以作为ConcurrentLinke
  • 适用于 Windows 的命令行对话框工具

    我需要一个类似于 cdialog 或whiptail 的对话框工具 但可以在 Windows 上运行 我有 MinGW 从源代码编译一些东西是没有问题的 但据我所知 cdialog 和 Whiptail 都包含特定于 UNIX 的代码 因此
  • Spring Boot不加载静态资源

    有很多关于 spring boot 不加载静态资源的问题 并且读完它们 几乎 后我仍然无法解决这个问题 在这个阶段 我选择不使用 Spring Boot 运行 但我仍然想知道问题是什么 我正在使用 Eclipse Java 8 和 Mave
  • 使用 VLC 将文件流式传输为 RTSP

    我需要创建一个可以将 mp3 文件流式传输到另一个设备的服务器 我打算使用 VLC 我查看了 VLC 文档 并对执行此操作的前进方向感到困惑 我找到了这个链接 http www videolan org doc streaming howt
  • T-SQL 到 XML - 每个属性的多个值可以在自己的行中列出吗?

    我目前正在使用 T SQL 将一些数据转换为 XML 我需要在自己的行上列出属性的值 由于某种原因 T SQL 到 XML 不断将值连接在同一行上 示例代码 SELECT Fruits AS Attribute name Apple AS
  • jQuery 中的triggerHandler 与触发器

    出于好奇 jQuery 的目的 用例是什么triggerHandler 据我所知 两者之间唯一 真正 的区别trigger and triggerHandler是本机事件是否触发 以及事件冒泡行为 尽管triggerHandler的冒泡行为
  • RUBY - SSL、基本身份验证和 POST

    我对此感到相当困难 似乎有一些代码片段我似乎无法拼凑在一起 我只是想发布键 值对 但是得到Connection refused connect 2 Errno ECONNREFUSED Help require net http requi
  • Spark Driver 内存计算

    我知道如何计算执行器核心和内存 但是谁能解释一下spark driver memory是根据什么计算的 操作于Dataset比如collect take需要将所有数据移至应用程序的驱动程序进程中 并且在非常大的数据集上执行此操作可能会导致驱
  • MVC 3 授权自定义角色

    我是 MVC 3 新用户 我正在尝试通过 SQL 数据库进行管理 首先 我有客户实体 可以通过管理字段定义管理 该字段是客户实体中的布尔类型 我只想在产品页面中访问管理员 而不是在普通客户中 我想制作 Authorize Roles adm
  • 带字符串的多行内联汇编宏

    我正在尝试实现一个宏 MY MACRO 它存储某个部分中前面带有 32 位整数的字符串 my section 例子 MY MACRO 200 my first string u x 以下是我尝试过的选项以及我面临的问题 我将不胜感激任何帮助
  • 在调试器中跳过表达式主体属性

    有没有类似的 DebuggerStepThrough 属性可用于 C 中的表达式主体属性 例如我想跳过代码 public Byte ByteArray gt Builder CreateArray DebuggerStepThrough 不
  • 如何不在 NextJS 登录页面上渲染布局组件

    如何排除渲染Layout当路由为 login register等等 在 NextJS 中 const MyApp Component pageProps gt return
  • 为什么 javascript 在 if 语句中接受逗号?

    我偶然发现了一些 JavaScript 语法 看起来应该会产生某种解析错误 但实际上却没有 if true true console log splendid else console log horrid splendid if true
  • 隐藏选择的选项组及其内容(所选选项除外)

    我想为国家 地区创建一个选择标签 当我们选择国家 地区时 它会隐藏所有 optgroup 及其国家 地区选择标签的内容 但 optgroup 及其内容与所选国家 地区选项具有相同标签 例如
  • 为什么 std::apply 使用函数模板会失败,但使用具有显式模板参数列表的 lambda 表达式却不会失败?

    在查看 std apply 的引用时参考参数 https en cppreference com w cpp utility apply我们可以看到函数模板不能作为 std apply 的可调用对象传递 让我们考虑以下函数模板 templa
  • 带有 JavaFx 11 和 JDK 11 的 Netbeans 9.0

    我正在尝试在 NetBeans 9 上运行 JavaFX 11 由于 JDK 11 不再具有 JavaFX 我无法让 NetBeans 运行 JavaFX 项目 它说 Failed to automatically set up a Jav
  • 将带有扩展名的文件移动到某个位置

    如何将文件夹中的所有 txt 文件和所有包含的文件夹移动到目标目录中 最好将它们重命名为它们所在的文件夹 尽管这并不那么重要 我对 bash 不太熟悉 要递归移动文件 请组合find with mv find src dir name tx
  • 分布式开发团队 - 所需工具[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我有一个开发团队分布在全球不同时区 在这样的团队中实现最大生产力的最佳工具是什么 我在寻找 源代码控制
  • 在透明导航栏和半透明之间过渡

    在苹果最近发布的远程应用程序中 我注意到导航栏的行为方式是独特的 但我无法重现它 弹出 正在播放 视图控制器时 正在播放 视图控制器的导航栏保持透明 而库视图控制器的导航栏也保持半透明 屏幕截图 1 我试图弄清楚他们是否使用两个导航控制器或