【发布时间】:2012-06-14 10:21:01
【问题描述】:
我正在尝试在状态栏顶部添加一个视图。我一直在关注这个 SO 帖子:Adding view on StatusBar in iPhone
由于某种原因,当我创建窗口并将“隐藏”设置为“否”时,视图似乎不会显示在状态栏的顶部。这个实现在 ios5.1 中还能用吗?
谢谢!
这是我的自定义 UIWindow 类:
@implementation StatusBarOverlay
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
// Place the window on the correct level and position
self.hidden = NO;
self.windowLevel = UIWindowLevelStatusBar+1.0f;
self.frame = [[UIApplication sharedApplication] statusBarFrame];
// Create an image view with an image to make it look like a status bar.
UIImageView *backgroundImageView = [[UIImageView alloc] initWithFrame:self.frame];
backgroundImageView.image = [UIImage imageNamed:@"bar_0.png"];
backgroundImageView.animationImages = [NSArray arrayWithObjects:[UIImage imageNamed:@"bar_1.png"],
[UIImage imageNamed:@"bar_2.png"],
[UIImage imageNamed:@"bar_3.png"],
nil];
backgroundImageView.animationDuration = 0.8;
[backgroundImageView startAnimating];
[self addSubview:backgroundImageView];
}
return self;
}
在我的视图控制器中,我创建了新窗口并在 viewDidLoad 中调用它:
StatusBarOverlay *overlayWindow = [[StatusBarOverlay alloc] initWithFrame:CGRectZero];
[overlayWindow makeKeyAndVisible];
但是,视图仍然没有显示。知道为什么吗?
【问题讨论】:
-
您引用的帖子在顶部说该应用程序被苹果商店拒绝,因为它试图这样做。您是否有理由不能只隐藏状态栏,然后创建一个看起来像状态栏的子视图,可以嵌入到现在具有隐藏状态栏的视图中?
-
苹果在一千年内不会允许这样做。你的应用被拒绝的速度比 Taco Bell 的炸玉米饼穿过你的肠子还要快。