iOS中导航栏布局的项目太多

时间:2017-07-27 21:10:27

标签: ios swift xcode uinavigationitem

我需要一些帮助来弄清楚如何在iOS应用中修复导航栏的布局。向“孩子”添加导航时对于给定屏幕的视图,到目前为止,我的方法是将按钮添加到' leftBarButtonItems' UINavigation项目的集合。只要按钮的数量不超过3或4,一切都很好。

Good Nav Bar

不幸的是,我现在有一个需要额外按钮的屏幕。一切似乎都很好,但是当我真正运行应用程序时,我最终会遇到像这样的乱七八糟的混乱:

Bad Nav Bar

有没有更好的方法来使用这样的导航和工具栏按钮布局UI?如果将按钮放在导航栏中实际上是正确的方法,我需要做些什么来使布局处理内容不适合的情况?

2 个答案:

答案 0 :(得分:2)

我不会在添加任何额外按钮时烦恼。用户希望大多数应用程序以类似的方式运行,并且(虽然这在技术上是可行的)但这是不寻常的事情。

Apple's HIG州:

  

避免拥挤控件太多的导航栏。一般情况下,导航栏应该只包含视图的当前标题,后退按钮和一个管理视图内容的控件。 / p>

而且,即使您选择忽略Apple的HIG,这肯定会对可访问性有所帮助。您的用户可以(并且将会)使用动态类型更改文本大小 - 所以如果按钮的数量不超过3或4,您的断言就可以了#34;将被某人证明是假的。

您最好添加工具栏,或者找一些其他方式来提供这些功能。

答案 1 :(得分:1)

导航栏通常在左侧显示上一个视图的标题。右侧包含一个控件,如“编辑”或“完成”按钮,用于管理活动视图中的内容。

Navigation bar Example

Apple文档建议避免拥挤控件太多的导航栏。

导航栏应该只包含视图的当前标题,后退按钮和一个管理视图内容的控件。

对于后退按钮,您应该使用标准按钮。至于文本字段,它应该有足够的空间。如果导航栏中的项目拥挤,请考虑通过在func bodyMassIndex (userHeight : Float, userWeight : Float) -> String { let userHeightSquared = (userHeight*userHeight) let userWeight = userWeight let userBMI = (userWeight/userHeightSquared) return String(userBMI) if userBMI > 25 { return "Overweight" } } 中使用UIBarButtonSystemItemFixedSpace常量值插入固定空格来进行分隔。 有关更多信息,请访问以下link

当您需要3个或更多项目时,可以使用导航栏或工具栏。您可以组合导航栏和工具栏。有关更多信息,请在工具栏上使用Apple文档。