IOS积累

iOS 简单自定义状态栏(彷微博)

2017-03-30  本文已影响35人  XY_Coder
.h代码:
#import <UIKit/UIKit.h>

@interface XYCustomStatusbar : UIWindow

@property (nonatomic,strong)UIImageView *logoImageView;
@property (nonatomic,strong)UILabel *statusTextLabel;
+(instancetype)sharedStatusBar;
-(void)showStatusWithString:(NSString *)string;

-(void)hiddenStatusBar;

@end


.m代码:
#import "XYCustomStatusbar.h"
@interface XYCustomStatusbar()

@end

@implementation XYCustomStatusbar


static XYCustomStatusbar *_status;
+(instancetype)sharedStatusBar{
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        _status = [[XYCustomStatusbar alloc]init];
    });
    return _status;
}

-(instancetype)init{
    if (self = [super init]) {
        [self setupSubViews];
    }
    return self;
}

-(void)setupSubViews{
    self.frame = [UIApplication sharedApplication].statusBarFrame;
    self.windowLevel = UIWindowLevelStatusBar +1;
    self.backgroundColor = [UIColor cyanColor];
    self.hidden = true;
    
    UIImageView *imageView = [[UIImageView alloc]initWithFrame:CGRectMake(15, 0, 20, 20)];
    [self addSubview:imageView];
    imageView.backgroundColor = [UIColor colorWithRandomColor];
    self.logoImageView = imageView;
    
    UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(40, 0, SCREEN_MAIN.width - 40, 20)];
    [self addSubview:label];
    label.textColor = [UIColor whiteColor];
    label.backgroundColor = [UIColor colorWithRandomColor];
    self.statusTextLabel = label;
}

-(void)showStatusWithString:(NSString *)string{
    self.alpha = 0.0f;
    self.hidden = false;
    self.statusTextLabel.text = string;
    [UIView animateWithDuration:0.1f animations:^{
        self.alpha = 1.0f;
    } completion:^(BOOL finished) {
        
    }];
    
}

-(void)hiddenStatusBar{
    [UIView animateWithDuration:0.1f animations:^{
        self.alpha = 0.0f;
    } completion:^(BOOL finished) {
        self.hidden = true;
    }];
}

@end

运用:
[[XYCustomStatusbar sharedStatusBar]showStatusWithString:str];//显示
[[XYCustomStatusbar sharedStatusBar]hiddenStatusBar];//消失
上一篇下一篇

猜你喜欢

热点阅读