.h代码:
#import
@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];//消失