iOS导航栏VS UIToolBar

时间:2013-12-13 17:37:36

标签: ios uiview uiviewcontroller uinavigationcontroller uitoolbar

根据Apple的“Human Interface Guidelines” - 导航栏应该只有一个按钮(除标准后退按钮外)

这一切都很好,但有几个应用程序在顶部导航栏上有许多按钮,例如Facebook应用程序(Image) 我的问题/讨论来自这里。 。 。

1)苹果会接受使用UIToolBar代替导航栏(带有自定义“后退”按钮“,它可以替代导航栏:

2)这是Facebook如何实现他们的顶级酒吧?

3)如果我可以使用工具栏而不是导航栏,我会在顶部有一个小空间,工具栏会与“状态栏”重叠 - 我该如何克服这个问题? - - 将A UIView放置在具有嵌入式工具栏的位置是否是此问题的正确解决方案?

非常感谢您的所有帮助/意见/指南

3 个答案:

答案 0 :(得分:5)

您不必显示导航栏,可以隐藏它(请参阅setNavigationBarHidden:animated:)。您可以使用UIToolbar,但有很多选项可用于自定义导航栏。

您可以将leftBarButtonItemtitleViewrightBarButtonItem设置为UINavigationController class reference中指定的自定义视图。这些属性需要UIBarButtonItem,但不一定是按钮。您可以使用initWithCustomView:创建UIBarButtonItem以使用任何UIView创建UIBarButtonItem。它可以是一个UIView,它有多个按钮作为子视图或搜索栏或分段控件或您需要的任何视图,只要它们适合并且不违反HIG。您可以使用导航栏中的任意3个自定义视图执行此操作。

答案 1 :(得分:3)

  

1)苹果会接受使用UIToolBar代替导航   栏(带有自定义"后退"按钮",它将作为替代品   导航栏:

我的建议,当面对一个"我是否可能通过解决它而违反规范,并希望他们不介意"决定,是"不"。如果他们不接受,您是否愿意花时间将代码更改为符合规范?

  

2)这就是Facebook如何实现他们的顶级酒吧?

我不确定这是否有责任。

  

3)如果我可以使用工具栏而不是导航栏,我会的   顶部的一个小空间,工具栏将与"状态重叠   BAR" - 我该如何克服这个问题? - - 会放置A UIView,   在该位置使用嵌入式工具栏是正确的解决方案   这个问题?

我使用工具栏和导航栏创建了一个应用程序。 See the screen shots (Review page) here.工具栏位于导航栏下方的顶部。有一次,我添加了一个功能,可以在导航栏上点按隐藏/显示工具栏。但是由于更长的显示器出来了,我已经删除了它。只要显示器提供他们需要的信息,大多数用户似乎并不介意顶部的额外小打击。

这有用吗?

答案 2 :(得分:2)

1)可能。我没有看到或听说过苹果打算拒绝使用工具栏而不是导航控制器的应用程序的例子。但是,由于这个原因,您可能会让审稿人有一个糟糕的一天决定拒绝您的应用;它确实无法确定,但不太可能。我会说我已经提交了一个类似于带导航控制器的应用程序的应用程序,但顶部栏是自定义的,并且已被接受。

2) Facebook顶部栏很可能是完全自定义的。您可以看到透明效果与标准导航栏的透明度不同,并且布局与任何标准苹果控件都不相似。

3)使用界面构建器(或代码中)中的topLayoutGuide对齐顶栏(无论如何)。