导航栏上的HideBar隐藏后,单元格出现在HeaderCell&状态栏一秒钟

时间:2016-04-08 21:20:49

标签: ios swift uitableview uinavigationcontroller uinavigationbar

修改:我尝试添加AppDelegate 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)

Extend Edges - Top Bars should be checked for the header cell to stop going under status bar but unfortunately doesn't stop content cell.

在我将状态栏更改为红色之后,我阻止它进入状态栏,但我意识到它不仅仅是状态栏,而且当导航栏被轻扫时会发生一些事情。内容单元格在NavBar被刷掉后1秒钟显示。 1秒后,一切看起来都很好,没有内容单元格超过标题单元格或状态栏。

要清除问题,在导航栏滑动时,标题单元格和状态栏之间会出现间隙形式,因此内容单元格显示1秒钟。

但是如何防止这1-2秒的错误呢?标题单元格给出了1-2秒的间隙。如果我快速向下滑动/滚动表视图,则会发生这种情况。

我将在下面留下原始问题给未来的读者。

原始问题:

我有一个TableViewController,它有Header&内容细胞。我在Swipe上隐藏了导航控制器。但是,隐藏导航栏后,内容单元格的内容位于顶部的状态栏下。其他一切都很好。

enter image description here

Header Cells看起来很好,因为它们停在状态栏的正下方。

  • self.tableView.contentInset = UIEdgeInsetsMake(20, 0, 0, 0)

我试过了:

  • self.extendedLayoutIncludesOpaqueBars = false。 然而,这给出了Header Cell和&之间的空间。状态栏(甚至在导航栏被隐藏之前)。我希望在隐藏导航栏后实现。

  • self.automaticallyAdjustsScrollViewInsets = false什么都不做。

  • self.edgesForExtendedLayout = UIRectEdge.None使用此方法将HeaderCell锚定到视图的顶部,以便HeaderCell定位在NavigationBar下。

  • Status Bar - Inherred。使用它使得HeaderCell位置本身从状态栏的顶部开始,因此Header的一半似乎在状态栏下。 (还有导航栏 - Bar Tint强迫灰色忽略我选择的任何东西,所以不太方便) enter image description here

我想问一下

  • 有没有办法让状态栏不透明&让它坚固? (我在故事板上有void Update () { if(isServer){ Debug.Log("I'm the server"); } if(isClient){ Debug.Log("I'm the client"); } }

  • 否则,有没有办法防止这种行为?也许考虑状态栏稳固;或者在导航栏被隐藏后,可以在状态栏下面给Header Cell一个空格或位置HeaderCell?

1 个答案:

答案 0 :(得分:0)

我没有运气使用TableViewController,这是我的解决方法......

  • 创建了一个新的ViewController

  • 取消选中“调整滚动视图插图”

  • 将TableViewController中的TableView复制到ViewController的View中。

  • 为TableView 添加约束(上/下/左-20 /右20)。

  • 在AppDelegate中,为状态栏指定白色。