如何扩展UIViewController以在Swift中隐藏和显示StatusBar

时间:2019-05-20 12:47:20

标签: swift uiviewcontroller

我使用isHideStatusBar(true)并覆盖了两个必要的道具,以便在viewController中隐藏和显示StatusBar

Data1 = np.array([1,2,3,3,5,6,7,8])
Data2 = np.array[1,2,3,4,6,7,8,8]
n,bins,patches = plt.hist(Data1,bins=20)
plt.ylabel("no of states")
plt.xlabel("bins")

plt.savefig("./DOS")`

如何将这段代码放入 var statusBarShouldBeHidden = false override var prefersStatusBarHidden: Bool { return statusBarShouldBeHidden } override var preferredStatusBarUpdateAnimation: UIStatusBarAnimation { return .slide } func isHideStatusBar(_ bool: Bool, _ delay : CFTimeInterval = 0){ statusBarShouldBeHidden = bool UIView.animate(withDuration: 0.4, delay: delay, options: [], animations: { self.setNeedsStatusBarAppearanceUpdate() }) { (finished) in } } UIViewController中?

1 个答案:

答案 0 :(得分:1)

可以带有子类

class MainViewController: UIViewController { 

    var statusBarShouldBeHidden = false
    override var prefersStatusBarHidden: Bool {
        return statusBarShouldBeHidden
    }

    override var preferredStatusBarUpdateAnimation: UIStatusBarAnimation {
        return .slide
    }

    func isHideStatusBar(_ bool: Bool, _ delay : CFTimeInterval = 0){
        statusBarShouldBeHidden = bool
        UIView.animate(withDuration: 0.4, delay: delay, options: [], animations: {
            self.setNeedsStatusBarAppearanceUpdate()
        }) { (finished) in
        }
    }
}
class ViewController: MainViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.

        isHideStatusBar(true)
    } 

}
  

扩展能力仅限于包含存储的属性和覆盖的方法