动画时避免状态栏透明

Avoid status bar transparency while animating

我得到了包含 2 个元素的 viewController:

  1. 查看标签和按钮
  2. 表格视图

我通过将视图的高度限制从 170 更改为 0 而不是动画 view.layoutIfNeeded() 和 tableView.layoutIfNeeded() 来获得以下动画。

我的目标是当 tableView 的内容偏移量达到某个值时隐藏菜单。

这很好用,除了我在视图中的移动内容上覆盖了一个状态栏。是否有任何选项可以将子层添加到状态栏而不是透明的?或者还有其他建议吗?

谢谢!

创建一个视图,将其放在状态栏所在的位置,然后将其背景颜色设置为您需要的任何颜色。例如:

let statusBarView = UIView(frame: UIApplication.sharedApplication().statusBarFrame)
statusBarView.backgroundColor = UIColor.blackColor()
view.addSubview(statusBarView)

或者,将内容边缘设置为 (20.0, 0.0, 0.0, 0.0),我同意这是一个更优雅的解决方案,正如@holex 在评论中所建议的