0

私がやりたいことは、最初にナビゲーション バーを非表示にしてから、ユーザーが画面の上部 (あるべき場所) に触れると、ナビゲーション バーが約 1 ~ 2 秒間表示されて消えることです。

背景と同じ色のボタンを追加してみましたが、それを押すとナビゲーションバーが表示されますが、うまくいかないようです。

また、デモを行って、これが機能することをユーザーに示すにはどうすればよいですか? ありがとう!

4

2 に答える 2

2

最初にアプリのデリゲートでナビゲーション バーを非表示にします。次に、タッチ イベントを追加するビュー コントローラーに移動し、次の 2 つのメソッドを使用します。

  • (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)イベント

{

//mouseSwiped = NO;
CGPoint touchPoint;
//CGPoint touchPointNavigationBar;
UITouch *touch = [touches anyObject];
touchPoint=[touch locationInView:self.view];
if (self.navigationController.navigationBarHidden==YES) {
    if (touchPoint.y<50) {
        self.navigationController.navigationBarHidden=NO;
        timer=[NSTimer scheduledTimerWithTimeInterval:3.0 target:self selector:@selector(hideNavigationBar) userInfo:nil repeats:NO];  
        [[NSRunLoop currentRunLoop] addTimer:timer forMode:NSRunLoopCommonModes];
    }
}

}

-(void)hideNavigationBar

{

self.navigationController.navigationBarHidden=YES;
if ([timer isValid]) {
    [timer invalidate];
    return;
}

}

于 2012-06-12T10:48:59.543 に答える
1

これは、出力を取得する方法の 1 つです。このコードを 1 行ずつ説明しているので、役に立ちます。

1]

ビューの上部にボタンを 1 つ追加し、そのボタンに透明な背景画像を追加して、 self.navigationController.navigationBarHidden = YES;と記述します。ビューでDidLoad。

// これにより、ナビゲーション バーが非表示になります。n これで、独自のカスタム ナビゲーション バーを作成できます。

2]

xib で別の UIView を取得し、view2 という名前を付けて、それぞれの IBOutlet に接続します。

それぞれの IBOutlets と IBAction と 2 つの関数を取得し、ビューとボタンに接続します。

以下のコードは、.h ファイルに入ります >>>>>

IBOutlet UIButton *btnHideNShow; // これをボタンに接続

IBOutlet UIView *viewTemp; // これを View に接続します

-(IBAction)btnHideNShowAction:(id)送信者; // これを Button に接続します

-(無効)fun1;

-(無効)fun2;

3]

以下のコードは .m ファイルに入ります >>>>

-(IBAction)btnHideNShowAction:(id)送信者{

btnHideNShow.hidden = YES;
[NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(fun1) userInfo:nil repeats:NO];

}

-(ボイド)楽しい1{

viewTemp.frame = CGRectMake(0, 0, 320, 59);
[self.view addSubview:viewTemp];


[NSTimer scheduledTimerWithTimeInterval:3.0 target:self selector:@selector(fun2) userInfo:nil repeats:NO];

}

-(無効)fun2{

[viewTemp removeFromSuperview];
btnHideNShow.hidden = NO;

}

> 要件に応じて、このビューをカスタマイズできます。

于 2012-06-12T10:37:46.757 に答える