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

索珀

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

天哪,我希望我已经很好地解释了这一点,我一想到就会感到困惑!

屏幕截图1(弹出): 屏幕截图1

屏幕截图2(推送): 屏幕截图2

里奥·纳坦

我只是下载了该应用程序以确保。使用了两个不同的导航栏。您可以使用交互式弹出手势来查看。注意底部视图控制器上的导航栏如何滑入和滑出。在正常的推入和弹出过渡过程中,导航栏只是在现有栏上淡入和淡出,而栏是固定的。这是直到按下正在播放的视图控制器之前发生的情况。

如果快速浏览,则在正在播放的视图控制器动画中,您会看到底部导航栏消失了。

根据我对UIKit行为的了解以及我在应用程序中看到的内容,这是我认为会发生的事情:

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

  • nowplaying_vcviewWillAppear:

    • 使用将导航栏设置为隐藏[self.navigationController setNavigationBarHidden:YES animated:YES];由于这是在动画块中,因此这将使导航栏在推送动画期间滑出。
    • [UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent;为此,请设置“非常确定”,因为请注意,状态栏样式的过渡中没有动画。它变成白色。
  • nowplaying_vcviewWillDisappear:

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

要使的导航栏具有透明的外观nowplaying_vc,可以将空白图片([UIImage alloc])与一起使用setBackgroundImage:forBarPosition:barMetrics:

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

我认为状态栏样式已更改,viewWillAppear:并且viewWillDisappear:由于在交互弹出手势期间感觉不自然。我建议使用动画过渡,或者甚至更好的方法是使用新的基于视图控制器的状态栏样式,系统会自行为过渡设置动画。


现代API更新:

您应该使用animateAlongsideTransition:completion:animateAlongsideTransitionInView:animation:completion:API,而不是依靠的隐式动画viewWillAppear:viewWillDisappear:

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

管理从普通NavigationBar到透明导航栏的过渡

来自分类Dev

半透明/透明状态栏和导航栏

来自分类Dev

在半透明的导航栏中查看?

来自分类Dev

UITableView位于半透明导航栏下

来自分类Dev

iOS中的半透明导航栏模糊

来自分类Dev

从透明导航到实体导航栏

来自分类Dev

导航栏背景色-半透明为否

来自分类Dev

导航栏在地图上具有半透明的颜色

来自分类Dev

半透明导航栏(Android 4.4)-在下面显示内容

来自分类Dev

半透明导航栏,带有其他颜色的按钮

来自分类Dev

向后导航时,Android工具栏变为半透明

来自分类Dev

iOS双导航栏通过设置半透明关闭

来自分类Dev

无法使UITableView出现在半透明导航栏下

来自分类Dev

使UISegmentedControl的颜色与半透明导航栏的颜色匹配

来自分类Dev

如何在SwiftUI中制作半透明的导航栏?

来自分类Dev

iOS-内容上的半透明导航栏

来自分类Dev

获取indexPathsForVisibleItems()(不包括半透明导航栏下的那些)

来自分类Dev

Bootstrap:轮播上的半透明导航栏覆盖页面CSS

来自分类Dev

透明导航栏不起作用(显示为半透明的蓝色)

来自分类Dev

如何使导航栏透明

来自分类Dev

如何使导航栏透明

来自分类Dev

透明导航栏

来自分类Dev

Android:如何将状态栏和导航栏设置为半透明

来自分类Dev

片段之间的动画过渡-幻灯片效果-半透明statusBar和ActionBar

来自分类Dev

片段之间的动画过渡-幻灯片效果-半透明statusBar和ActionBar

来自分类Dev

检查半透明导航是否可用

来自分类Dev

半透明边栏OS X

来自分类Dev

NavigationView和半透明状态栏

来自分类Dev

无法使状态栏变为半透明

Related 相关文章

热门标签

归档