我基本上试图在iPhone上复制iPod应用程序的行为,当您选择一首歌曲时,音乐播放器视图会滑入,导航栏会转换为新颜色.
我的应用程序设置为基于选项卡的应用程序,UITabBarController并UINavigationController在每个选项卡中嵌套.UINavigationController每个选项卡的内部都是UITableView.当我在表格中选择一个项目时,我正在使用pushViewController滑动到下一个视图,并且我已经设置hidesBottomBarWhenPushed在下一个视图控制器中以便滑动标签.这种行为非常接近iPod"正在播放"页面,这几乎是完美的.
最后一个问题是我无法转换导航栏的颜色,就像iPod应用程序中的导航栏从蓝色变为黑色一样.我可以在新视图出现(in viewWillAppear)后强制更改颜色,但更改是突然的,并且不会模仿iPod应用程序的行为,具有淡入淡出效果.
有谁知道我在这里缺少什么?它似乎是一个非常简单和常见的UI,我在几个应用程序中看到过,但似乎没有一个明显的方法来做到这一点.
我正在使用我们所有人的已知动画,动画更改导航栏的背景图像,延迟时间将其从半透明(我将其设为默认值)更改为(蓝色主题).
UIView.animate(withDuration:0.5,
delay: 0,
option: UIViewAnimationOptions.curveEaseOut,
animations: {
self.navigationController?.navigationBar.setBackgroundImage(UIImage(), for: .default)
self.navigationController?.navigationBar.shadowImage = UIImage()
}, completion: nil)
Run Code Online (Sandbox Code Playgroud)
但动画没有用,但导航栏的背景图像改变成功,我不知道为什么!!
有任何想法吗?