您的位置:首页 > 移动开发 > IOS开发

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

2017-08-30 13:29 54 查看
.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];//消失
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐