我在StatusBar
显示UITableViewController
时遇到问题,因为它没有背景信息。所以我希望能够以编程方式做到这一点。我在Facebook
和Youtube等应用中看到了这一点。任何人都可以帮我吗?
答案 0 :(得分:0)
要让您的UINavigationBar延伸到状态栏后面,您可以在导航栏的委托上实现功能位置(对于:)。
class MyViewController: UIViewController {
@IBOutlet weak var navigationBar: UINavigationBar!
override func viewDidLoad() {
super.viewDidLoad()
navigationBar.delegate = self
}
}
extension MyViewController: UINavigationBarDelegate {
func position(for bar: UIBarPositioning) -> UIBarPosition {
return .topAttached
}
}
答案 1 :(得分:0)
为了在状态栏后面添加一个视图,您可以使用以下为 Swift 3
编写的代码您需要为其创建扩展名,并且可以在任何需要它的视图控制器中使用它。
let SCREEN_WIDTH = UIScreen.main.bounds.size.width
extension UIViewController {
func addStatusBarBackgroundView(viewController: UIViewController) -> Void {
let rect = CGRect(origin: CGPoint(x: 0, y: 0), size:CGSize(width: SCREEN_WIDTH, height:20))
let view : UIView = UIView.init(frame: rect)
view.backgroundColor = UIColor.init(red: 255/255, green: 255/255, blue: 255/255, alpha: 1) //Replace value with your required background color
viewController.view?.addSubview(view)
}
}
只需在视图控制器中写一行来调用它:
override func viewDidLoad() {
super.viewDidLoad()
addStatusBarBackgroundView(viewController: self)
//Your extra code
}
快乐编码.. !!