【发布时间】:2016-04-08 21:20:48
【问题描述】:
编辑:我尝试在 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 Cell和状态栏之间有一个间隙表格,所以内容单元格会出现1秒。
但是我怎样才能防止这个 1-2 秒的错误呢?它是标题单元格,它提供了 1-2 秒的间隙。如果我快速向下滑动/滚动表格视图,通常会发生这种情况。
我将下面的原始问题留给未来的读者。
原问题:
我有一个包含标题和内容单元格的 TableViewController。我在滑动时隐藏导航控制器。但是,隐藏导航栏后,内容单元格的内容会在顶部的状态栏下方。其他一切都很好。
标题单元格看起来不错,因为它们停在状态栏的正下方。
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)。 但是,这会在标题单元格和状态栏之间留出空间(甚至在导航栏隐藏之前)。我想在隐藏导航栏后实现。self.extendedLayoutIncludesOpaqueBars = false什么都不做。self.automaticallyAdjustsScrollViewInsets = false使用它可以将 HeaderCell 锚定到视图的顶部,以便 HeaderCell 位于 NavigationBar 下方。self.edgesForExtendedLayout = UIRectEdge.None。使用它使 HeaderCell 位置本身从状态栏的顶部开始,因此一半的 Header 似乎在状态栏下方。 (还有 Navigation Bar - Bar Tint 会强制变为暗灰色,忽略我选择的任何内容,所以不太方便)
我想问
有没有办法不使状态栏不透明并使其稳定? (我在 Storyboard 上有
Status Bar - Inherred)。否则,有没有办法防止这种行为?也许考虑状态栏稳固;或者可能在导航栏隐藏后给标题单元格一个空间或位置 HeaderCell 在状态栏下开始?
【问题讨论】:
-
您可以设置约束,使表格视图不与状态栏重叠。
-
对于表格视图?表格视图的约束似乎已禁用
-
你考虑过隐藏状态栏吗?
-
@user3353890 我要保留状态栏
标签: ios swift uitableview uinavigationcontroller uinavigationbar