0

皆さん、コードでステータスバーを非表示にします。ビューをロードすると、ステータスバーが表示され、しばらくすると自動的に非表示になります。どうやってするか?

4

4 に答える 4

3

あなたがしたいUIApplicationsetStatusBarHidden:withAnimation:

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

ドキュメントを参照してください。

于 2012-07-07T05:25:57.150 に答える
0

プロジェクトを選択Hide during application launchし、ヘッダーの一般セクション内で次のDeployment Infoように選択する必要があります。

ここに画像の説明を入力

そして、info.plist 内でView controller-based status barNO に設定します。

ここに画像の説明を入力

于 2014-02-03T23:31:46.647 に答える
0

applicationDidBecommeActive (「ロードされたビューの後」) のときに、AppDelegate で簡単に実行できます。UIViewアニメーションブロックを使用して400ms後に非表示ステータスを設定し、ルートView Controllerのナビゲーションバーを計算します

// AppDelegate.m

#import "AppDelegate.h"
#import "SomeViewController.h"

@interface AppDelegate ()
@property (nonatomic, strong) SomeViewController *someViewController;
@end

@implementation AppDelegate

- (void)applicationDidBecomeActive:(UIApplication *)application
{
    UINavigationBar *navBar = self.someViewController.navigationController.navigationBar;
    if (![[UIApplication sharedApplication] isStatusBarHidden]) {
       [[UIApplication sharedApplication] setStatusBarHidden:YES
                                               withAnimation:UIStatusBarAnimationSlide];
       [UIView animateWithDuration:0.4
                        animations:^{
                            navBar.frame = CGRectMake(navBar.frame.origin.x, 0, navBar.frame.size.width, navBar.frame.size.height);
                     } completion:nil];
    }
}

@end

それだけです。

于 2013-05-03T18:51:21.277 に答える
0

それをテストしていないので、もっと良い方法があるかもしれませんが、ロードビュー関数に次を入れると:

[self performSelector:@selector(hideNavBar) withObject:nil afterDelay:0.0];

そして、この機能を持っています

-(void) hideNavBar {
    if (self.navigationController.navigationBar.hidden == NO)
    {
        [self.navigationController setNavigationBarHidden:YES animated:YES];
    }
}

ビュー アニメーション ブロックでナビゲーション バーを非表示にする必要がある場合があります。しかし、いくつかの組み合わせが機能するはずです

リンクをチェックアウト

于 2012-07-07T05:19:29.230 に答える