我的应用程序中有多个 UIViewController
- 特别是在 UIWebView
中显示网页内容的应用程序 - 可以折叠高度UINavigationBar
,就像您在 Facebook 应用程序或 iOS 上的 Safari 中滚动时看到的那样。但是,我终究无法弄清楚这是如何完成的。
我意识到我可能需要关闭 UIScrollViewDelegate scrollViewDidScroll
: 方法,但到目前为止还没有取得太大的成功。谁能给我一些关于如何实现这一目标的指示?我确实看到了AMScrollingNavbar项目,但由于公司要求,我不能在我们的应用程序中使用它。
最佳答案
我是 AMScrollingNavbar 的创建者。
正如您从代码中看到的那样,我发现实现该行为的最佳方式是使用手势识别器。关键是实现它的委托(delegate)协议(protocol),方法返回YES:
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
至于 UIWebView
,请记住您必须处理 webview 中 contained 的 ScrollView 。
不过,您可以在源代码中找到更多信息,并且由于我是在 MIT 许可下发布它的,所以您可以随意将其包含在您的商业项目中,或者根据需要进行修改。
我还发表了一篇关于我用来创建库的过程的文章,你可以在这里阅读: AMScrollingNavbar: Creating a Cocoapod 。
它解释了我在编写库时遇到的几个问题。
希望这对您有所帮助。 干杯
关于ios - 像 Facebook 或 Safari 一样折叠 UINavigationBar?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21462739/