现在的位置: 首页 > 综合 > 正文

iOS开发-自定义状态栏,显示发送结果

2018年04月08日 ⁄ 综合 ⁄ 共 2026字 ⁄ 字号 评论关闭

自定义状态栏,首先需要隐藏系统的statusbar然后重新显示一个window即可

然后需要显示的内容直接显示在 window上即可

注意window是不需要添加到一个 view上的,

直接上代码,可以直接使用:

//

//  CustomStatusBar.h
//  CustomStatusBar
//
//  Created by  on 14/10/24.
//  Copyright (c) 2014年  All rights reserved.
//

#import <UIKit/UIKit.h>

@interface CustomStatusBar : UIWindow
- (void)showStatusMessage:(NSString *)message;

- (void)hideStatusBarWhenSendFinished;

-(void)hideStatusBarWhenSendFailed;
@end


//
//  CustomStatusBar.m
//  CustomStatusBar
//
//  Created by  on 14/10/24.
//  Copyright (c) 2014年 . All rights reserved.
//

#import "CustomStatusBar.h"

@interface CustomStatusBar ()

@property(strong,nonatomic)UILabel *messageLabel;
@end
@implementation CustomStatusBar

- (instancetype)init
{
    self = [super init];
    if (self) {
        
        self.frame=[UIApplication sharedApplication].statusBarFrame;
        self.backgroundColor=[UIColor blackColor];
        self.windowLevel=UIWindowLevelStatusBar+1.0f;
        self.messageLabel=[[UILabel alloc]initWithFrame:self.bounds];
        self.messageLabel.textColor=[UIColor whiteColor];
        self.messageLabel.textAlignment=NSTextAlignmentCenter;
        [self addSubview:_messageLabel];
    }
    return self;
}


- (void)showStatusMessage:(NSString *)message
{
    self.hidden = NO;
    self.alpha = 1.0f;
    self.frame=[UIApplication sharedApplication].statusBarFrame;
    self.messageLabel.frame=self.bounds;
    CGSize totalSize = self.frame.size;
    self.frame = (CGRect){ self.frame.origin, 0, totalSize.height };
    [UIView animateWithDuration:0.5f animations:^{
        self.frame = (CGRect){ self.frame.origin, totalSize };
         self.messageLabel.text = message;
    } completion:^(BOOL finished)
    {
       
    }];
}

- (void)hideStatusBarWhenSendFinished
{
    self.alpha = 1.0f;
    [UIView animateWithDuration:2.0f animations:^
    {
        self.alpha = 0.0f;
       
        CGRect  frame=self.frame;
        frame.size.height=0;
        self.frame=frame;
        self.messageLabel.text=@"发送成功!";
        } completion:^(BOOL finished){
                self.frame=CGRectZero;
        self.hidden = YES;
    }];;
}
-(void)hideStatusBarWhenSendFailed
{
    self.alpha = 1.0f;
    [UIView animateWithDuration:2.0f animations:^
     {
         self.alpha = 0.0f;
         
         CGRect  frame=self.frame;
         frame.size.height=0;
         self.frame=frame;
         self.messageLabel.text=@"发送失败!";
     } completion:^(BOOL finished){
         self.frame=CGRectZero;
         self.hidden = YES;
     }];;
}
@end

原文地址:原文地址:http://blog.csdn.net/yangbingbinga

抱歉!评论已关闭.