动画时避免状态栏透明
Posted
技术标签:
【中文标题】动画时避免状态栏透明【英文标题】:Avoid status bar transparency while animating 【发布时间】:2015-12-17 16:59:02 【问题描述】:我得到了带有 2 个元素的 viewController:
-
带有标签和按钮的视图
表格视图
我通过将视图的高度约束从 170 更改为 0 以及为 view.layoutIfNeeded() 和 tableView.layoutIfNeeded() 设置动画来获得以下动画。
我的目标是当 tableView 的内容偏移量达到某个值时隐藏菜单。
这很好用,除了我在视图中的移动内容上覆盖了状态栏。 是否有任何选项可以将子图层添加到状态栏而不是透明的?或者有什么其他建议?
谢谢!
【问题讨论】:
你可以在那里放一个纯黑色20pt
高视图,这使得状态栏的透明度消失了的错觉;但是对于UITableView
,我宁愿建议将内容边缘设置为(20.0, 0.0, 0.0, 0.0)
,这是一个更优雅的解决方案。
^holex 说的。如果您查看 UIApplication 文档,则无需更改状态栏的背景。 developer.apple.com/library/ios/documentation/UIKit/Reference/…
【参考方案1】:
创建一个视图,将其放在状态栏所在的位置,并将其背景颜色设置为您需要的任何颜色。例如:
let statusBarView = UIView(frame: UIApplication.sharedApplication().statusBarFrame)
statusBarView.backgroundColor = UIColor.blackColor()
view.addSubview(statusBarView)
或者,将内容边缘设置为 (20.0, 0.0, 0.0, 0.0)
,我同意这是一个更优雅的解决方案,正如 cmets 中的 @holex 所建议的那样
【讨论】:
可能还想为 tableView 的顶部添加内容插入 为什么不直接使用statusBarFrame
?
@Sulthan 太简单了...我已经更新了我的答案。
问题是:那些顶部按钮和标签是 UIView 的一部分,而不是 tableView。 tableView 以绿色/橙色标题开头。所以我认为在这种情况下内容插入对我没有帮助。还是我误解了你的想法?以上是关于动画时避免状态栏透明的主要内容,如果未能解决你的问题,请参考以下文章
android沉浸式状态栏变色状态栏透明状态栏修改状态栏颜色及透明
Android Kitkat 4.4版本状态栏下使用导航抽屉时状态栏颜色显示为白色不透明