UICollectionView 导航栏闪烁
Posted
技术标签:
【中文标题】UICollectionView 导航栏闪烁【英文标题】:UICollectionView navigation bar flashes 【发布时间】:2018-03-19 23:20:40 【问题描述】:我的UICollectionview
有这种奇怪的行为,在初始加载期间,导航栏会短暂地扩展到视图中,然后消失。
-
集合视图已添加到视图中,并添加了第一个单元格。第一个单元格始终是这个静态的“新游戏”按钮。
集合视图正在添加其他元素。这些是从本地存储中加载的,并为找到的每个游戏添加一个单元格。
在添加“新游戏”单元格和拉入游戏单元格之间,会显示导航栏。
有什么想法可以在这里发生吗?乐于分享更多信息;让我知道什么是相关的!
【问题讨论】:
您能否在显示栏时尝试添加断点,然后在 Xcode 中检查您的视图层次结构并确定该栏的实际UIView
子类。
此外,您认为相关的任何代码都可能会有所帮助。您应该始终考虑将相关代码添加到您的问题中。
@ndmeiri 我发现这与我的导航栏有关。在 viewDidAppear 我设置 self.navigationController?.isNavigationBarHidden = true。如果我将其注释掉,那么顶部的这个扩展栏就会留在那里 (dropbox.com/s/ilib09og2qa4dfk/…)
两件事:1.有没有更好的地方放这个,这样我就可以确保它更早地执行并防止标题的这种闪烁? 2. 我在collectionview cellForItemAt 中进行的加载正在减慢一切,导致viewdidappear 出现这种延迟。如果我删除它并立即返回单元格,则标题不会闪烁。我已经在 DispatchQueue 中加载了。您是否可以建议任何方法来防止 collectionview 加载阻止 viewdidappear?
你能试试把导航栏隐藏在viewWillAppear
吗?
【参考方案1】:
根据我们在 cmets 中的讨论,您将导航栏隐藏在 viewDidAppear
中。
self.navigationController?.isNavigationBarHidden = true
您应该在视图出现之前隐藏导航栏,在 viewWillAppear
中。
【讨论】:
以上是关于UICollectionView 导航栏闪烁的主要内容,如果未能解决你的问题,请参考以下文章
导航栏下的 UICollectionView,但标签栏下没有
Swift 添加 UICollectionView 代替导航栏标题
Cordova Android 应用程序导航栏和状态栏闪烁或变为纯白色