iOS中导航栏布局的项目太多
Posted
技术标签:
【中文标题】iOS中导航栏布局的项目太多【英文标题】:Too Many Items for Nav Bar Layout in iOS 【发布时间】:2017-07-27 21:10:26 【问题描述】:我需要一些帮助来确定如何修复 ios 应用中导航栏的布局。向给定屏幕的“子”视图添加导航时,到目前为止,我的方法是将按钮添加到 UINavigation 项的“leftBarButtonItems”集合中。只要按钮的数量不超过 3 或 4 个,一切都很好。
不幸的是,我现在有一个需要额外按钮的屏幕。一切似乎都构建得很好,但是当我实际运行应用程序时,我最终会遇到这样的混乱:
有没有更好的方法来布局带有导航和工具栏按钮的 UI?如果将按钮放在导航栏中实际上是正确的方法,我需要做什么才能使布局处理内容无法容纳的情况?
【问题讨论】:
如果你真的需要按钮,你最好隐藏后退按钮的标题(ALASKA VISION CLINIC...
)。 See this
我同意@Ryan 的观点并且过去曾这样做过。但是您也可以尝试将标题部分缩写为ALASKA (#100081)
。
【参考方案1】:
我不会为添加 any 额外按钮而烦恼。用户期望大多数应用程序以类似的方式运行,并且(虽然这在技术上是可行的)这是一件不寻常的事情。
Apple's HIG 状态:
避免过多的控件使导航栏拥挤。一般来说,导航栏不应包含视图的当前标题、后退按钮和一个管理视图内容的控件。
而且,即使您选择忽略 Apple 的 HIG,这对可访问性肯定也不利。您的用户可以(并且将会)使用 Dynamic Type 更改文本大小 - 因此,您断言“按钮数量不超过 3 或 4 个”就可以的断言将被某人证明是错误的。
您最好添加一个工具栏,或者寻找其他方式来提供这些功能。
【讨论】:
是的,我并没有真正考虑过工具栏,但这看起来像是要走的路。现在问题变成了如何组织按钮。在五个按钮中,三个导航到子视图并且明显属于工具栏。其他两个,但是我不确定。一个是取消当前订单的“删除”按钮。另一个是提交订单的“结帐”按钮。其中哪些(如果有的话)属于工具栏,哪些应该留在导航栏中?【参考方案2】:导航栏的左侧通常有上一个视图的标题。右侧包含一个控件,如编辑或完成按钮,用于管理活动视图中的内容。
Navigation bar Example
Apple 文档建议避免使用过多控件将导航栏挤满。
导航栏应该只包含视图的当前标题、一个后退按钮和一个管理视图内容的控件。
返回按钮你应该使用标准的。至于文本字段,它应该有足够的空间。如果导航栏中的项目很拥挤,请考虑通过在UIBarButtonItem
中使用UIBarButtonSystemItemFixedSpace
常量值插入固定空间来分隔。
欲了解更多信息,请访问以下link。
当您需要 3 个或更多项目时,可以使用导航栏或工具栏。您可以结合导航栏和工具栏。有关更多信息,请使用工具栏上的 Apple 文档。
【讨论】:
以上是关于iOS中导航栏布局的项目太多的主要内容,如果未能解决你的问题,请参考以下文章