iOS 단순 사용자 정의 상태 표시줄(웨이보 참조)

2070 단어
.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];//  

좋은 웹페이지 즐겨찾기