繁体   English   中英

检测点击以显示/隐藏UINavigationBar

[英]Detecting tap to Show/hide UINavigationBar

我是iPhone开发的新手,并没有做任何有趣的事情。 我的视图层次结构如下:

 UIView - UIImageView - UIScrollView - CustomView 

如何检测用户是否点击了屏幕上的任何位置,以便我可以相应地显示/隐藏导航栏? 我不需要在我的CustomView上进行用户交互,但是当用户只想拖动它时,我想忽略UIScrollView上的触摸。

我已经可以使用以下命令以编程方式显示/隐藏我的视图控制器中的导航栏:

[self.navigationController setNavigationBarHidden:YES animated:YES];

提前致谢!

UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(showHideNavbar:)];
[self.view addGestureRecognizer:tapGesture];
[tapGesture release];

-(void) showHideNavbar:(id) sender { // write code to show/hide nav bar here }

这是使用iOS4上提供的UIGestureRecognizers进行此操作的方法

您可以使用UIView中的touchesBegan方法来检测tap,因此您必须为viewcontroller的视图设置一个UIView的自定义子类,以便您检测点击。 然后,您将必须使用委托给视图的控制器发送消息,以便它可以隐藏navigationBar

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    NSUInteger numTaps = [[touches anyObject] tapCount];
    if (numTaps == 1)
    {
        [delegateController tapDidOccur];  
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM