如何根据光标位置隐藏导航栏以使用全屏?

时间:2010-09-27 04:29:44

标签: iphone xcode

我试图根据光标位置隐藏导航栏。因此,我可以使用iPhone的全屏。但我不知道如何开始它。

类似(不那么混乱:))问题:Show/hide UIToolbar, "match finger movement", precisely as in for example iOS7 Safari

2 个答案:

答案 0 :(得分:1)

如果要在视图的任何部分双击隐藏和取消隐藏导航栏,请使用以下代码

在你的.h文件中:

IBOutlet UINavigationController *navigationController;

在您的XIB中连接IBOutlet。

你的.m文件中的

  -(void)viewDidLoad {

  [super viewDidLoad];

  [navigationController setNavigationBarHidden:YES];



 }

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{ UITouch *touch = [touches anyObject];

  if (touch.tapCount == 2) {

       [navigationController setNavigationBarHidden:NO];
       [NSTimer scheduledTimerWithTimeInterval:(1.0) target:self   selector:@selector(hideBar) userInfo:nil repeats:NO];


      }

  }

-(void)hidebar{

[navigationController setNavigationBarHidden:YES];



}

根据您的要求进行修改。

快乐的编码!

答案 1 :(得分:0)

iPhone上没有光标,但你的意思是你想做像safari那样的事情 - 当向下滚动多个屏幕页面时隐藏地址栏吗?

假设您使用的是UITableView,我有一个解决方案: 1.我们已经知道每个表行的高度 - > cell.frame.size.heigh 2.我们已经知道屏幕的高度 - > view.bounds.size.height 3. UITableView每次生成一个单元格时都会调用cellForRowAtIndexPath 因此,您可以轻松地知道表中有多少个单元格,行索引和它们的总高度,每当您看到属于下一个屏幕页面的行索引时,您应该隐藏带有动画的导航栏。否则,如果所有行索引都属于第一个屏幕 - >显示带动画的导航栏。