【问题标题】:Transparent UINavigationBar issue with UICollectionViewUICollectionView 的透明 UINavigationBar 问题
【发布时间】:2016-03-28 11:20:21
【问题描述】:

我创建了一个简单的项目来测试如何使 UINavigationBar 透明。在这个项目中,我有两个 UIViewController。第一个视图控制器显示一个大按钮,将第二个视图控制器推入导航控制器。

第二个视图控制器是一个 UIViewController,它包含一个 UICollectioView(它不是一个 UICollectionViewController)。

在应用委托中,我将此代码写入 application:didFinishLaunchingWithOptions

UINavigationBar.appearance().setBackgroundImage(UIImage(), forBarMetrics: .Default)
UINavigationBar.appearance().shadowImage = UIImage()
UINavigationBar.appearance().backgroundColor = UIColor(red: 0.0, green: 0.0, blue: 0.0, alpha: 0.0)
UINavigationBar.appearance().translucent = true

它就像第一个 UIViewController 的魅力(导航栏是透明的),但是当我移动到另一个 UIViewController(使用 UICollectionView)时,导航栏不透明,当我回到以前的 UIViewController 时仍然不透明!

有什么建议吗?

PS:为了清楚起见,我的预期结果是,即使我向上滚动并且它们通过导航栏下方,我也想看到单元格。我不知道我是否清楚。

【问题讨论】:

  • Fabio,你的第二个视图控制器中没有什么东西(例如 viewDidLoad 中的代码),设置透明度吗?
  • @IanBell 不,没有。这是一个非常干净的项目,从头开始创建
  • @IanBell 需要明确的是,我的预期结果是,即使我向上滚动并且它们通过导航栏下方,我也希望看到单元格。我不知道我是否清楚。
  • 你能展示一下你是如何移动到第二个视图控制器的代码吗?
  • @NitinGohel 没有代码。我只是在故事板上使用了segue。真正的基本项目,仅用于测试。

标签: ios swift uiviewcontroller uicollectionview uinavigationbar


【解决方案1】:

由于我没有 50 名声望,但我无法对问题发表评论,但我在 Xcode 中复制了您的项目,并且没有发现任何错误。我得到了以下屏幕(注意半透明的导航栏):

要创建这些屏幕,请执行以下操作,这就是可能出现问题的地方:

  • 向 AppDelegate 添加代码
  • 在 NavigationController 中嵌入 FirstViewController
  • 添加 SecondViewController
  • 向 FirstViewController 添加按钮
  • 在 'Button' 和 SecondViewController 之间添加 segue
  • 将 CollectionView 添加到 SecondViewController
  • 为“Button”和“CollectionView”添加约束

这听起来可能很愚蠢,但在 AppDelegate 中,您是否将代码放在:

return true

声明?

【讨论】:

  • 是的,我做到了,但我发现了问题!这是 UICollectionView 的最高约束!
  • 太棒了!请注意在放置约束时如何定义:“与最近邻居的间距”。在这种情况下,这是我假设的 UINavigationBar。但是,您可以手动调整对象并让 Xcode 为您建议约束:解决自动布局问题 -> 重置为建议的约束
【解决方案2】:

我花了 24 小时才找出问题所在!这是一个愚蠢的坏约束! UICollectionView 对 Top Layout Guide 有一个约束,而不是 UIViewController 的 View!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-11-05
    • 2011-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多