【问题标题】:iOS Swift Transition from normal navigation bar to transparent bariOS Swift 从普通导航栏过渡到透明栏
【发布时间】:2017-11-26 19:54:25
【问题描述】:

我用谷歌搜索了类似的问题,但没有一个能真正解决这个问题。 我尝试从具有普通导航栏的视图控制器推送到具有透明导航栏的新视图控制器。 这是我用来设置导航栏透明的第二个视图控制器中的代码

self.navigationController?.navigationBar.setBackgroundImage(UIImage(), for: .default) self.navigationController?.navigationBar.shadowImage = UIImage() navigationController?.navigationBar.barTintColor = .clear self.navigationController?.navigationBar.isTranslucent = true

如何在过渡期间在导航栏上不出现浅灰色的情况下获得平滑过渡?

【问题讨论】:

  • 您在哪里添加了代码以使其透明?在viewDidAppearviewWillAppear?
  • 我是在viewDidLoad里设置的,不管我在哪里设置,还是会出现这种情况
  • 您是否尝试将其添加到 viewDidAppear 中?
  • 这篇文章可能对你有所帮助:stackoverflow.com/q/44343355/3900902

标签: ios swift uinavigationcontroller uinavigationbar transition


【解决方案1】:

我附上一个示例项目供您参考,一切都是通过故事板设置的,没有代码。希望对您有所帮助!

file link

这是项目实现的,在显示按钮的 viewController 上,导航栏是可见的,当单击按钮时,另一个 viewController 被推入视图,但导航栏完全隐藏在视图之外。它仅在用户点击视图中的任意位置时出现。

【讨论】:

  • @HoangTrung 请立即查看。有一个错字。我很抱歉。
  • 感谢示例项目。但我想将导航栏保留在第二个视图控制器上,而不是像那样隐藏它
【解决方案2】:

您需要做的是创建一个自定义导航栏并改为使用它。它看起来会好很多。我遇到过类似的问题,唯一为我解决的问题是创建自定义导航栏。转到您的故事板并添加它:

【讨论】:

  • 我应该在哪里设置这个导航栏?在第一视图还是第二视图?我还应该做什么?
  • 我会在任何地方使用它,但如果您只想将它​​设置在第二个视图上。
  • 我真的不知道该怎么处理这个
  • @HoangTrung,我创建了一个自定义项目来展示如何做到这一点。你可以下载它here
  • 感谢示例代码。我尝试为第二个 VC 设置透明条,它在推送时工作得很好,但是当返回时,后退按钮没有按预期移动
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-12-20
  • 2018-10-29
  • 1970-01-01
  • 2020-09-19
  • 2018-03-05
  • 2014-11-08
  • 2021-11-05
相关资源
最近更新 更多