gpt4 book ai didi

iphone - 在 iPhone 底部添加 StatusBar

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:51:26 25 4
gpt4 key购买 nike

我想在 iPhone 底部显示一个状态栏,就像 Gmail 帐户中的状态栏一样,显示它正在检查邮件。我在这个线程中尝试了以下解决方案 Adding view on StatusBar in iPhone

但状态栏没有出现,然后我使用相同的代码不做任何修改将其显示在默认状态栏的顶部,它也没有出现。

我也尝试过使用 MTStatusBarOverlay 的另一种解决方案,当我试图将其框架更改为底部时,我在屏幕中间看到了一个黑色矩形

有什么帮助吗?

这是代码

// new class i have created
@interface BottomStatusBarOverlay : UIWindow

@end

@implementation BottomStatusBarOverlay
- (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];
self.alpha = 1;
self.hidden = NO;
// 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:@"statusBarBackgroundGrey.png"] stretchableImageWithLeftCapWidth:2.0f topCapHeight:0.0f];
[self addSubview:backgroundImageView];
}
return self;
}
@end

// usage in my view controller in a button action
@implementation MainViewController
-(IBAction)showBottomStatusbar:(id)sender {
BottomStatusBarOverlay *bottomStatusBarOverlay = [[BottomStatusBarOverlay alloc] init];
bottomStatusBarOverlay.hidden = NO;
}

最佳答案

您发布的代码显示您的 showBottomStatusbar 方法创建了一个 BottomStatusBarOverlay 实例,但您实际上从未将它作为 subview 添加到任何内容。

我不在 iPhone 上使用 Gmail 应用程序。所以,我不确定它的外观或功能。但是,我过去创建了一个通知栏,看起来与您描述的相似。它动画到屏幕底部,显示一条消息三秒钟,然后滑回。我通过将栏添加到应用程序的窗口来实现这一点,这将确保它覆盖应用程序当前显示的任何 View 。但是,如果您的应用程序中不需要全局栏,则可以将栏添加到当前处于事件状态的任何 View 。以下是获取应用程序窗口引用的方法:

UIApplication* app = [UIApplication sharedApplication];
UIWindow* appWin = app.delegate.window;

要制作动画,您可以使用 animateWithDuration,如下所示:

[UIView animateWithDuration:0.3 
animations:^ {
// However you want to animate on to the screen.
// This will slide it up from the bottom, assuming the
// view's start position was below the screen.
view.frame = CGRectMake(0,
winHeight - viewHeight,
winWidth,
viewHeight);
}
completion:^(BOOL finished) {
// Schedule a timer to call a dismiss method after
// a set period of time, which would probably perform
// an animation off the screen.
dismissTimer = [NSTimer
scheduledTimerWithTimeInterval:3
target:globalMessage
selector:@selector(dismiss)
userInfo:nil
repeats:NO];
}];

希望这对您有所帮助。

关于iphone - 在 iPhone 底部添加 StatusBar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10599363/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com