美文网首页
iOS:状态栏

iOS:状态栏

作者: 春暖花已开 | 来源:发表于2019-01-04 09:56 被阅读51次

Swift

    override var childViewControllerForStatusBarStyle: UIViewController? {
        return viewControllers.last
    }


import UIKit

class YQBookMainVC: UIViewController {
    
    private var statusStyle: UIStatusBarStyle = .default

    private var calStatusStyle: UIStatusBarStyle {
        get {
            return statusStyle
        }
        set {
            if (newValue != statusStyle) {
                statusStyle = newValue
                setNeedsStatusBarAppearanceUpdate()
            }
        }
    }
    
    private lazy var mButton: UIButton = {
        let button = UIButton(type: .system)
        button.frame = CGRect(x: 100, y: 100, width: 60, height: 60)
        button.setTitle("点我", for: .normal)
        button.addTarget(self, action: #selector(click), for: .touchUpInside)
        return button
    }()


    override func viewDidLoad() {
        super.viewDidLoad()

        view.addSubview(mButton)
    }
    
    override var preferredStatusBarStyle: UIStatusBarStyle {
        return statusStyle
    }

    @objc private func click(sender: UIButton) {
        
        sender.isSelected = !sender.isSelected;
        if sender.isSelected {
            calStatusStyle = .lightContent
        } else {
            calStatusStyle = .default
        }
    }
}

Objective-C

- (UIViewController *)childViewControllerForStatusBarStyle {
    return self.topViewController;
}

#import "ViewController.h"

@interface ViewController ()

@property (nonatomic, assign) UIStatusBarStyle style;

@end

@implementation ViewController

- (IBAction)changeStatusStyle:(UIButton *)sender {
    
    sender.selected = !sender.selected;
    
    if (sender.isSelected) {
        self.style = UIStatusBarStyleLightContent;
    } else {
        self.style = UIStatusBarStyleDefault;
    }
}

- (UIStatusBarStyle)preferredStatusBarStyle {
    return self.style;
}

- (void)setStyle:(UIStatusBarStyle)style {
    
    if (_style != style) {
        _style = style;
        [self setNeedsStatusBarAppearanceUpdate];
    }
}

@end

相关文章

网友评论

      本文标题:iOS:状态栏

      本文链接:https://www.haomeiwen.com/subject/tmxhrqtx.html