在UITableViewController中滚动几个项目,使该单元格出现在我的UIStatusBar
后面。我尝试使用此方法来解决:
var bounds = self.view.bounds
bounds.origin.y -= 20.0;
self.view.bounds = bounds
// Create a solid color background for the status bar
let statusFrame = CGRect(x: 0, y: -20, width: bounds.size.width, height: 20)
let statusBar = UIView(frame: statusFrame)
statusBar.backgroundColor = UIColor.red
self.view.addSubview(statusBar)
在滚动之前,这会给我一个红色的条。经过一点滚动后,它消失了。我还尝试将tableView的contentInset设置为
UIApplication.shared.statusBarFrame.height
,但是做了同样的事情。保持导航栏很重要。而且我的TableViewController嵌入在
UINavigationController
中有任何想法吗?
最佳答案
一种方法是重构UITableViewController并将其制成UITableView并在状态栏下方添加顶部约束。
另一种是更改状态栏颜色,例如:
func setStatusBarBackgroundColor(color: UIColor) {
if let statusBar = UIApplication.sharedApplication().valueForKey("statusBarWindow")?.valueForKey("statusBar") as? UIView {
statusBar.backgroundColor = color
}
}
但是要小心,因为它是私有API。您的应用可能会被拒绝。
关于ios - UITableViewController和UIStatusbar,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39699404/