以编程方式添加状态栏后面的视图 - swift

时间:2016-10-05 11:19:38

标签: ios swift statusbar

我在StatusBar显示UITableViewController时遇到问题,因为它没有背景信息。所以我希望能够以编程方式做到这一点。我在Facebook和Youtube等应用中看到了这一点。任何人都可以帮我吗?

2 个答案:

答案 0 :(得分:0)

要让您的UINavigationBar延伸到状态栏后面,您可以在导航栏的委托上实现功能位置(对于:)。

Swift3示例

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
}

快乐编码.. !!