从iPad状态栏中取出电池和手表图标

时间:2012-10-04 21:40:55

标签: objective-c ios uistatusbar

我需要从iPad应用程序的状态栏中取出电池并观看图标。我怎么能这样做?

3 个答案:

答案 0 :(得分:2)

不,你不能这样做。您只能删除完整的状态栏。

我不知道为什么人们会想要移除时钟和电池,但无论如何都要离开吧台。

答案 1 :(得分:1)

您可以使用UIWindow子类作为复制状态栏外观的不透明视图。您可以相应地设置其框架,以便它仅阻止您需要隐藏的状态栏部分。然后将windowLevel属性设置为UIWindowLevelStatusBar + 1.0f。希望这有帮助!

修改

我想出了一些基本的示例代码。这应该只被视为概念证明。尝试值得生产代码有许多考虑因素,例如旋转,不同的状态栏样式(我说半透明实际上是不可能的),以及 状态栏中项目的不同布局。

UIWindow子类:

@interface StatusBarMask : UIWindow

@end

@implementation StatusBarMask

- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        self.windowLevel = UIWindowLevelStatusBar + 1.0f;
        self.backgroundColor = [UIColor greenColor];
        self.hidden = NO;
    }
    return self;
}

@end

实例化它的视图控制器:

@interface ViewController ()

@property (nonatomic, strong) StatusBarMask *mask;

@end

@implementation ViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
    CGRect appStatusBarFrame = [[UIApplication sharedApplication] statusBarFrame];
    appStatusBarFrame.size.width = 384.0f;
    appStatusBarFrame.origin.x = 384.0f;
    self.mask = [[StatusBarMask alloc] initWithFrame:appStatusBarFrame];
}

@end

这将使用亮绿色矩形遮盖状态栏的右侧。根据需要调整颜色和大小,并考虑所有渐变,弯曲边缘等。仔细考虑各种边缘情况,您应该能够实现目标。

答案 2 :(得分:0)

您可以使用以下代码隐藏顶部状态栏

[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationFade];