IOS custom statusBar 思路

/// show the custom statusBar
//
- (void)btn1:(id)sender
{
    if(self.win && self.win.frame.origin.y == 0)
        return;
    
    if(self.win == nil)
    {
        self.win = [[UIWindow alloc] initWithFrame:CGRectMake(0, -20, 320, 20)];
        self.win.windowLevel = UIWindowLevelAlert;
        self.win.backgroundColor = [UIColor redColor];
    }
    [self.win makeKeyAndVisible];
    
    // show it with animation
    [UIView beginAnimations:nil context:nil];
    [UIView setAnimationDuration:.3];
    self.win.frame=CGRectMake(0,0,320,20);
    [UIView commitAnimations];
}

/// hide it:
//
- (void)btn2:(id)sender
{
    if(self.win == nil || (self.win && self.win.frame.origin.y == -20))
        return;
    
    [UIUGetMainWindow() makeKeyAndVisible];// MainWindow: [[[UIApplication sharedApplication] windows] objectAtIndex:0].
    
    [UIView beginAnimations:nil context:nil];
    [UIView setAnimationDuration:.3];
    self.win.frame=CGRectMake(0,-20,320,20);
    [UIView commitAnimations];
}
原文地址:https://www.cnblogs.com/xiaouisme/p/3028595.html