iOS8: How do I make statusBar opaque after navigat

2019-04-06 00:30发布

I am building iOS8 app. On my tableview controller, I am using self.navigationController.hidesBarsOnSwipe = YES, to hide the navigationBar on swipe up gesture. It is working nicely, but my statusBar becomes transparent and shows the table content underneath.

On storyboard, Status Bar are Top Bar are set to "Inferred"

I want to: 1. Keep my status bar opaque 2. Maintain the same color as the navigationBar 3. Table content scrolls underneath the statusBar

Thank you.

3条回答
SAY GOODBYE
2楼-- · 2019-04-06 00:46

Make a custom View.

UIView * statusBarView =[[UIView alloc] initWithFrame:CGRectMake(0, 0, self.view.bounds.size.width, 20)];
statusBarView.backgroundColor=[UIColor whiteColor];
[self.view addSubview:statusBarView];
查看更多
可以哭但决不认输i
3楼-- · 2019-04-06 01:04

You can add a constraint to the top layout, by this scrolling content will not appear below the status bar.

查看更多
The star\"
4楼-- · 2019-04-06 01:08

Here is a Swift solution:

First, change UITableViewController to UIViewController and add a tableView field. Then, implement your viewDidLoad method as follows:

override func viewDidLoad() {
    super.viewDidLoad()
    tableView.delegate = self
    tableView.dataSource = self
    tableView.frame = view.frame
    view.addSubview(tableView)

    let topBar = UIView(frame: UIApplication.sharedApplication().statusBarFrame)
    topBar.backgroundColor = myDesiredColor
    view.addSubview(topBar)
}
查看更多
登录 后发表回答