iPhone上UIBarButtonItems之间的默认间距

4

我有一个 UINavigationBar,上面放了一些 UIBarButtonItems。iPhone 默认在按钮项目之间放置 10 的间距。我想知道代表这个间距的变量是什么?更明确地说 - 我想知道可以获取我的 UINavigationBar 上的 UIBarButtonItems 之间间距的变量是什么。

谢谢


那是私有API中声明的。你可以直接向苹果询问。 - Sumanth
1个回答

3
在 iOS 6 版本以下的任何 SDK 上,在工具栏或导航栏上执行此操作的公开方法是通过类似以下方式实现。
b = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];

使用UIBarButtonSystemItemFlexibleSpace样式属性添加一个虚拟按钮。特定尺寸您无法控制,系统会自动为您分配间距。在大多数情况下都能完美运作。

如果您需要更精确的控制,则必须创建自定义按钮。

因此,您可以立即使用上述方法之一。如果您对FlexibleSpace选项不熟悉,我建议您尝试它。

或者,您可以等待iOS 6版。该版本的SDK有其他方法可以实现您想要的效果,但在发布之前我们需要遵守保密协议。您可以登录iPhone开发人员门户查找文档,或者等待iOS 6发布。


谢谢。 :) 目前来说,其他选项也是完全有效的。可以通过自定义视图管理前导和尾随空间来完成。 - Cliff Ribaudo
我需要在两个按钮之间有一个确切的8空格距离。因此,使用FlexibleSpace样式不起作用。但是,根据另一个问题(无法找回其链接,将在找到后更新),解决方案建议给出-10空格以获得确切的间距。然而,这种解决方案存在一个问题,即如果在任何版本中将10空格更改为20,则8空格差异将为18。在5.1.1 SDK中是否有任何方法可以实现这一点,而无需硬编码10的值。 - vivekprakash
有一种方法可以做到这一点。创建自己的自定义按钮。使按钮的可见图像与某个背景或容器视图的边缘完全相隔所需的像素数。 - Cliff Ribaudo
尝试过这样做。但是,如果我将其保持在距其容器边界8个空格的位置,并且不添加-10个空格,结果是它距其左侧按钮18个空格。我需要一种查询UI的方法,以了解它在按钮之间添加了多少空间,以便我可以独立于SDK引起的更改来修复它们之间的空间。 - vivekprakash
另一个选项是创建自己的按钮栏控件并在其中管理自定义视图的位置。给它一个清晰的背景,并将其浮动在其他按钮栏的一部分上方。 - Cliff Ribaudo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接