我有一个应用程序,其导航栏由 2 个栏按钮组成。我想在用户双击屏幕时隐藏和显示此导航栏。
最初,导航栏应该是隐藏的。当用户双击屏幕时,导航栏应该出现一个动画,就像在 iPhone 的照片库中看到的那样。
我该怎么做?我们总是很感激您的建议。
最佳答案
这不是几行代码就能解决的问题,但这是一种可能适合您的方法。
隐藏导航栏:
[[self navigationController] setNavigationBarHidden:YES animated:YES];
显示它:
[[self navigationController] setNavigationBarHidden:NO animated:YES];
此方法的文档是 available here .
要监听“双击”或双击,子类 UIView
并使该子类的实例成为您的 View Controller 的 view
属性。
在 View 子类中,覆盖它的 -touchesEnded:withEvent:
方法并计算您在一段时间内获得了多少次触摸,通过测量两次连续点击之间的时间,可能使用 CACurrentMediaTime()
.或测试 [touch tapCount]
的结果.
如果您点击两次,您的子类 View 会发出一个 NSNotification
您的 View Controller 已注册监听。
当您的 View Controller 听到通知时,它会触发一个选择器,该选择器使用上述代码隐藏或显示导航栏,具体取决于导航栏的当前可见状态,通过读取导航栏的 isHidden
访问。属性(property)。
编辑
我关于处理点击事件的部分回答可能在 iOS 3.1 之前很有用。 UIGestureRecognizer
如今,类可能是处理双击的更好方法。
编辑 2
Swift 隐藏导航栏的方式是:
navigationController?.setNavigationBarHidden(true, animated: true)
显示它:
navigationController?.setNavigationBarHidden(false, animated: true)
关于ios - 导航栏显示/隐藏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2926914/