是否可以在尺寸为(320 X 20)的staus栏上添加UIView?我不想隐藏状态栏,我只想将它添加到状态栏的顶部。
发布于 2010-05-14 20:23:00
您可以通过在现有状态栏上创建自己的窗口来轻松完成此操作。
只需使用以下initWithFrame:
覆盖创建一个简单的UIWindow
子类
@interface ACStatusBarOverlayWindow : UIWindow {
}
@end
@implementation ACStatusBarOverlayWindow
- (id)initWithFrame:(CGRect)frame {
if ((self = [super initWithFrame:frame])) {
// Place the window on the correct level and position
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:@"statusBarBackground.png"];
[self addSubview:backgroundImageView];
[backgroundImageView release];
// TODO: Insert subviews (labels, imageViews, etc...)
}
return self;
}
@end
例如,您现在可以在应用程序的视图控制器中创建新类的实例并使其可见。
overlayWindow = [[ACStatusBarOverlayWindow alloc] initWithFrame:CGRectZero];
overlayWindow.hidden = NO;
注意使用- (void)makeKeyAndVisible
或类似工具处理Windows键状态。如果您将主窗口(应用程序代理中的UIWindow
)设置为松动按键状态,则在点击状态栏等操作时会遇到滚动视图滚动到顶部的问题。
发布于 2010-12-11 07:51:59
我写了一个模拟Reeders状态栏覆盖的静态库,你可以在这里找到它:https://github.com/myell0w/MTStatusBarOverlay
它目前支持iPhone和iPad,默认和不透明的黑色状态栏样式,旋转,3种不同的信息模式,历史跟踪和许多更好的东西!
请随时使用它或发送给我一个拉动请求来增强它!
发布于 2010-05-14 19:58:49
只是为了消除“你不能这样做的评论”...
我不知道怎么做,但我知道这是可行的。名为Reeder的Feed阅读器应用程序可以做到这一点。
正如您从截图中看到的,Reeder在屏幕的右上角放置了一个小圆点。当你点击它的时候。该栏将填充整个状态栏,直到您再次点击它使其变小。
https://stackoverflow.com/questions/2833724
复制相似问题