多个类似于 Maps 的 UINavigationControllers

Posted

技术标签:

【中文标题】多个类似于 Maps 的 UINavigationControllers【英文标题】:Multiple UINavigationControllers similar to Maps 【发布时间】:2011-04-07 10:57:28 【问题描述】:

我希望创建一个类似于 Maps 应用程序的 UI,只是为了尝试一些零碎的东西并复习我对界面构建器的了解。

目前我正在努力辨别的是地图应用程序如何处理工具栏和导航控制器之间的交互以及需要哪些 UI 元素来模拟界面。我猜 Maps 应用程序只有一个视图控制器,它不需要导航控制器,所以我不确定我目前是否使用了正确的应用程序模板,但我稍后会回到那个。

为了让您了解我要复制的内容,如果您搜索两个位置之间的路线,然后点击路线,导航控制器将从:

[清除]方向[取消]

到:

[编辑] 汽车 |火车 | walk [开始]

到目前为止一切都很好,与我过去所做的相比没有什么不寻常的。然而,让我感到困惑的是导航控制器下方的半透明视图,它显示了总距离和时间(或其他信息,取决于搜索方法)。什么是 UI 元素?它只是附加在主视图上的工具栏吗?我将如何将它添加到我的应用程序中,它是视图的一部分,还是导航控制器的一部分?

此外,以类似的方式...单击工具栏中的"Search" 部分会在应用程序顶部显示搜索字段。这是在导航控制器中,还是在显示搜索字段时隐藏导航控制器?同样,单击“方向”会显示搜索字段,但这次会显示一个额外的搜索字段和一个用于切换字段顺序的按钮。这是如何实现的?

我对术语不太了解,如果我混淆了一些术语,请原谅。我只是想掌握 UI 元素,因为我大部分时间都在学习 OpenGL,所以这对我来说还是有点新鲜。如果有人能指出地图应用程序中使用的正确 UI 元素,将不胜感激!

非常感谢您的阅读。

编辑:我 uploaded an image 来说明我在这个问题中查询的 UI 元素。

【问题讨论】:

【参考方案1】:

我没有内幕消息,所以我在猜测我会怎么做。

我会为顶部和底部栏使用 UIToolBar,而不是导航栏。您可以将工具栏放在任何地方,因为它们只是 UIView 的子类。

导航控制器下方的半透明视图可能只是地图视图顶部的自定义视图。同样,它只是 UIView 的一个子类。

两个工具栏中的项目将调用视图控制器中的方法,这些方法可以更改工具栏的内容或隐藏或显示其他视图。

例如,搜索按钮可能会调用 showSearchToolbar: 方法,而方向会调用 showDirectionsToolBar: 方法。这两种方法都只会更改顶部工具栏的内容并隐藏或显示顶部工具栏下方的视图。

查看 Apple 提供的 UICatalog 示例代码,了解如何动态更改工具栏的内容。

【讨论】:

感谢您的回复。这似乎是添加我需要的元素的合理方式。我将确定 UICatalog 示例的范围,看看我能找到什么。干杯!

以上是关于多个类似于 Maps 的 UINavigationControllers的主要内容,如果未能解决你的问题,请参考以下文章

底部动画类似于 iOS 中的 Apple Maps 应用程序

UINavigationController

Here maps iOS SDK:旋转Here maps中的标记

如何仅为一个视图控制器设置 UINavigation 栏的 titletextattributes?

免费用于商业用途的google-maps相当于做到以下几点?

从 Google Maps Places API 中删除占位符文本