0

我想要做的是首先隐藏导航栏,然后如果用户触摸屏幕顶部(应该在哪里),导航栏将显示大约 1 或 2 秒并消失。

我尝试添加一个与背景颜色相同的按钮,然后在触摸它时显示导航栏,但这似乎不起作用。

另外,我将如何进行演示,以便向用户展示这可行?谢谢!

4

2 回答 2

2

首先在应用委托中隐藏导航栏。然后来到要添加触摸事件的视图控制器,并使用这两种方法:

  • (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event

{

//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];
    }
}

}

-(无效)隐藏导航栏

{

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

}

于 2012-06-12T10:48:59.543 回答
1

这是获得输出的方法之一。我正在逐行解释此代码,这将更好地帮助您。

1]

在视图顶部添加一个按钮,并将任何透明背景图像添加到该按钮并写入self.navigationController.navigationBarHidden = YES; 在 viewDidLoad 中。

// 这将隐藏您的导航栏,现在您可以创建自己的自定义导航栏。

2]

现在在 xib 中使用 sepatare UIView,将其命名为 view2 并与相应的 IBOutlet 连接。

取各自的 IBOutlets 和 IBAction 和两个函数,然后连接到视图和按钮。

下面的代码,进入 .h 文件 >>>>>

IBOutlet UIButton *btnHideNShow; // 将此连接到按钮

IBOutlet UIView *viewTemp; // 将此连接到视图

-(IBAction)btnHideNShowAction:(id)发件人;// 将此连接到按钮

-(无效)乐趣1;

-(无效)乐趣2;

3]

现在下面的代码进入.m文件>>>>

-(IBAction)btnHideNShowAction:(id)sender{

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];

}

-(无效)乐趣2{

[viewTemp removeFromSuperview];
btnHideNShow.hidden = NO;

}

> 您可以根据您的要求自定义此视图。

于 2012-06-12T10:37:46.757 回答