NavigationBar Hide on Swipe 后,Cells 出现在 HeaderCell 和 Status Bar 之间一秒钟
After NavigationBar Hide on Swipe, Cells appear between HeaderCell & Status Bar for a second
编辑: 我尝试在 AppDelegate 中添加 DidFinishLaunch..
let view: UIView = UIView.init(frame: CGRectMake(0, 0, UIScreen.mainScreen().bounds.size.width, 25))
view.backgroundColor = UIColor.redColor()
view.alpha = 1
self.window!.rootViewController!.view.addSubview(view)
在我将状态栏更改为红色后,我阻止它进入状态栏下方,但我意识到它不仅仅是状态栏,导航栏在滑动时发生了一些变化。内容单元格会在 NavBar 被刷走后 1 秒内显示。 1 秒后,一切看起来都很好,没有内容单元格超过 header 单元格或状态栏。
为了解决这个问题,当导航栏滑开时,Header单元格和状态栏之间有一个间隙,所以内容单元格出现1秒。
但是我怎样才能避免这个 1-2 秒的错误呢? header 单元格会出现 1-2 秒的间隔。如果我 swipe/roll 快速查看 table ,它通常会发生。
我将下面的原始问题留给未来的读者。
原题:
我有一个包含 Header 和内容单元格的 TableViewController。我在滑动时隐藏了导航控制器。但是,隐藏导航栏后,内容单元格的内容位于顶部的状态栏下方。其他一切都很好。
Header 单元格看起来很好,因为它们就停在状态栏下方。
Extend Edges - Top Bars should be checked for the header cell to stop going under status bar but unfortunately doesn't stop content cell.
我试过了:
self.tableView.contentInset = UIEdgeInsetsMake(20, 0, 0, 0)
。
但是,这会在 Header 单元格和状态栏之间给出一个 space(甚至在导航栏被隐藏之前)。我想在隐藏Nav Bar后实现
self.extendedLayoutIncludesOpaqueBars = false
什么都不做。
self.automaticallyAdjustsScrollViewInsets = false
使用此选项将 HeaderCell 锚定到视图顶部,因此 HeaderCell 定位在 NavigationBar 下方。
self.edgesForExtendedLayout = UIRectEdge.None
。使用它使 Header 单元格本身从状态栏的顶部开始定位,因此 Header 的一半似乎在状态栏下方。 (还有导航栏——无论我选择什么,栏色调都会强制变成暗灰色,所以不太方便)
我想问
有没有办法让状态栏不透明并使其固定? (我在 Storyboard 上有 Status Bar - Inherred
)。
否则,有没有办法防止这种行为?也许考虑状态栏稳定;或者在导航栏隐藏后给 Header 单元格一个 space 或位置 Header 从状态栏开始的单元格?
我没能用 TableViewController 得到它,这是我的解决方法...
创建了一个新的 ViewController
未勾选'Adjust Scroll View Insets'
已将 TableView 从 TableViewController 复制到 ViewController 的视图中。
向 TableView 添加约束 (Top/Bottom/Left -20/Right 20).
在 AppDelegate 中,将状态栏设置为白色。
编辑: 我尝试在 AppDelegate 中添加 DidFinishLaunch..
let view: UIView = UIView.init(frame: CGRectMake(0, 0, UIScreen.mainScreen().bounds.size.width, 25))
view.backgroundColor = UIColor.redColor()
view.alpha = 1
self.window!.rootViewController!.view.addSubview(view)
在我将状态栏更改为红色后,我阻止它进入状态栏下方,但我意识到它不仅仅是状态栏,导航栏在滑动时发生了一些变化。内容单元格会在 NavBar 被刷走后 1 秒内显示。 1 秒后,一切看起来都很好,没有内容单元格超过 header 单元格或状态栏。
为了解决这个问题,当导航栏滑开时,Header单元格和状态栏之间有一个间隙,所以内容单元格出现1秒。
但是我怎样才能避免这个 1-2 秒的错误呢? header 单元格会出现 1-2 秒的间隔。如果我 swipe/roll 快速查看 table ,它通常会发生。
我将下面的原始问题留给未来的读者。
原题:
我有一个包含 Header 和内容单元格的 TableViewController。我在滑动时隐藏了导航控制器。但是,隐藏导航栏后,内容单元格的内容位于顶部的状态栏下方。其他一切都很好。
Header 单元格看起来很好,因为它们就停在状态栏下方。
Extend Edges - Top Bars should be checked for the header cell to stop going under status bar but unfortunately doesn't stop content cell.
我试过了:
self.tableView.contentInset = UIEdgeInsetsMake(20, 0, 0, 0)
。 但是,这会在 Header 单元格和状态栏之间给出一个 space(甚至在导航栏被隐藏之前)。我想在隐藏Nav Bar后实现self.extendedLayoutIncludesOpaqueBars = false
什么都不做。self.automaticallyAdjustsScrollViewInsets = false
使用此选项将 HeaderCell 锚定到视图顶部,因此 HeaderCell 定位在 NavigationBar 下方。self.edgesForExtendedLayout = UIRectEdge.None
。使用它使 Header 单元格本身从状态栏的顶部开始定位,因此 Header 的一半似乎在状态栏下方。 (还有导航栏——无论我选择什么,栏色调都会强制变成暗灰色,所以不太方便)
我想问
有没有办法让状态栏不透明并使其固定? (我在 Storyboard 上有
Status Bar - Inherred
)。否则,有没有办法防止这种行为?也许考虑状态栏稳定;或者在导航栏隐藏后给 Header 单元格一个 space 或位置 Header 从状态栏开始的单元格?
我没能用 TableViewController 得到它,这是我的解决方法...
创建了一个新的 ViewController
未勾选'Adjust Scroll View Insets'
已将 TableView 从 TableViewController 复制到 ViewController 的视图中。
向 TableView 添加约束 (Top/Bottom/Left -20/Right 20).
在 AppDelegate 中,将状态栏设置为白色。