标签:style   blog   class   code   c   ext   
第一种方法:
-(void)setRefreshWindow{
    CGRect frame = CGRectMake(0.0, 0.0, 320.0, 20.0);
    statusbarWindow = [[UIWindow alloc] initWithFrame:frame];
    [statusbarWindow setBackgroundColor:[UIColor clearColor]];
    [statusbarWindow setWindowLevel:UIWindowLevelStatusBar+1.0f];
    
    // 添加自定义子视图
    UIImageView *customView = [[UIImageView alloc] initWithFrame:CGRectMake(100, 0, 120, 18)];
    customView.image=[UIImage imageNamed:@"数据刷新栏.png"];
    
//    UILabel *label=[[UILabel alloc] initWithFrame:CGRectMake(100, 0, 100, 20)];
//    //    label.backgroundColor=[UIColor clearColor];
//    label.text=@"数据正在刷新";
//    [customView addSubview:label];
    [statusbarWindow addSubview:customView];
    [statusbarWindow makeKeyAndVisible];
}
第二种方法:
如果需要在状态栏显示自定义的消息时,就需要自定义状态栏。
代码如下:
XYCustomStatusBar.h
01 | 
#import
 <UIKit/UIKit.h> | 
 
03 | 
@interface
 XYCustomStatusBar : UIWindow{ | 
 
05 | 
    UILabel
 *_messageLabel; | 
 
08 | 
-
 (void)showStatusMessage:(NSString
 *)message; | 
 
 
 
XYCustomStatusBar.m
01 | 
#import
 "XYCustomStatusBar.h" | 
 
03 | 
@implementation
 XYCustomStatusBar | 
 
07 | 
    [_messageLabel
 release], _messageLabel = nil; | 
 
13 | 
        self.frame
 = [UIApplication sharedApplication].statusBarFrame; | 
 
14 | 
        self.backgroundColor
 = [UIColor blackColor]; | 
 
15 | 
        self.windowLevel
 = UIWindowLevelStatusBar + 1.0f; | 
 
17 | 
        _messageLabel
 = [[UILabel alloc] initWithFrame:self.bounds]; | 
 
18 | 
        [_messageLabel
 setTextColor:[UIColor whiteColor]]; | 
 
19 | 
        [_messageLabel
 setTextAlignment:NSTextAlignmentRight]; | 
 
20 | 
        [_messageLabel
 setBackgroundColor:[UIColor clearColor]]; | 
 
21 | 
        [self
 addSubview:_messageLabel]; | 
 
27 | 
-
 (void)showStatusMessage:(NSString
 *)message{ | 
 
30 | 
    _messageLabel.text
 = @""; | 
 
32 | 
    CGSize
 totalSize = self.frame.size; | 
 
33 | 
    self.frame
 = (CGRect){ self.frame.origin, 0, totalSize.height }; | 
 
35 | 
    [UIView
 animateWithDuration:0.5 animations:^{ | 
 
36 | 
        self.frame
 = (CGRect){self.frame.origin, totalSize }; | 
 
37 | 
    }
 completion:^(BOOL finished){ | 
 
38 | 
        _messageLabel.text
 = message; | 
 
47 | 
    [UIView
 animateWithDuration:0.5f animations:^{ | 
 
49 | 
    }
 completion:^(BOOL finished){ | 
 
50 | 
        _messageLabel.text
 = @""; | 
 
 
 
为了让自定义的状态栏可以让用户看到,设置了它的windowlevel,在ios中,windowlevel属性决定了UIWindow的显示层次,默认的windowlevel为UIWindowLevelNormal,即0.0 。为了能覆盖默认的状态栏,将windowlevel设置高点。其他代码基本上都不解释什么,如果要特殊效果,可以自己添加。
IOS开发之自定义状态条,布布扣,bubuko.com
IOS开发之自定义状态条
标签:style   blog   class   code   c   ext   
原文地址:http://blog.csdn.net/jijunyuan/article/details/25812655