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

标签 ios swift xcode uinavigationitem

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

Good Nav Bar

不幸的是,我现在的屏幕需要额外的按钮。一切似乎都构建得很好,但是当我实际运行应用程序时,我最终遇到了这样一团乱麻:

Bad Nav Bar

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

最佳答案

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

Apple's HIG状态:

Avoid crowding a navigation bar with too many controls. In general, a navigation bar should contain no more than the view’s current title, a back button, and one control that manages the view’s contents.

而且,即使您选择忽略 Apple 的 HIG,这对辅助功能肯定也不利。您的用户可以(并且将会)使用动态类型更改文本大小 - 因此您关于“按钮数量不超过 3 或 4”就可以的断言将被某些人证明是错误的。

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

关于ios - iOS 中导航栏布局的项目太多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45361073/

相关文章:

ios - 签名无效 - 代码对象根本没有签名

xcode - FirebaseApp.configure()使用 Unresolved 标识符 'FirebaseApp'错误

objective-c - 发布两个 NSNotifications 时的执行顺序

ios - TokBox订户超时错误

iphone - 从 XSD 方案生成 objective-c 类,如 Java 中的 JaxB?

json - 我如何在 Swift 中解析 KairosSDK JSON 识别响应?

ios - 如何在多个 View Controller 之间发送数据 swift 3

android - Quickblox 通知聊天室 IOS 到 Android 中的自定义参数

ios - 类型 'NSDictionary!' 没有下标成员 Swift - 3.0 转换问题

ios - 我如何在 Alamofire 中检查我的请求已发送?