4

注意:这个问题不是与正在运行的应用程序中的视图大小它与界面生成器中画布上导航控制器表示的大小严格相关。

此图说明了 Interface Builder 中的问题行为。

画布上的导航控制器大小错误

我还没有找到使导航控制器表示更小的方法。可以想象,一个 iPad 应用程序在许多 Popovers 中有许多 Navigation Controller 会导致 Storyboard 画布变得非常拥挤。

请注意,为了更正 Navigation Controller 的根视图控制器的大小,我必须将根视图控制器的Simulated Metrics Size调整为“Freeform”,然后手动指定它的根视图大小以匹配容器视图大小。

此图显示了导航控制器元素的所需行为。

在画布上适当调整导航控制器的大小

此图还提示了问题的原因。如果存在插入视图控制器,则容器视图的大小不会向下渗透到导航控制器元素。

我发现了 3 个类似的问题,但没有一个提供说明,也没有一个直接解决这个问题仍然存在于 Xcode 5 中。

  1. 在 InterfaceBuilder 中调整 NavigationController 的大小
  2. 如何在故事板编辑器中调整 UINavigationController 的大小
  3. 故事板中 UINavigationController 的弹出框大小

在过去的 90 天里,我在 Apple 开发者论坛上没有找到任何答案。

所以问题是,Interface Builder 中是否有一些我忽略的控制或设置可以解决我的问题?

上面列出的问题的一个答案提供了一个技巧,它涉及为每个导航控制器添加一个未使用的视图控制器和容器视图,但这并不令人满意,因为向情节提要中添加杂物比拥有超大的导航控制器更糟糕。

4

2 回答 2

1

不确定这是否能回答您的具体情况,但经过大量搜索后,我发现(至少在 Xcode 5.1 中)情节提要侧边栏中有一个“视图控制器”面板,其中包含“模拟大小”条目 - 选择“自由格式”并设置您的宽度和你想要的高度。

视图控制器“模拟大小”控件的屏幕截图

于 2014-05-02T19:07:22.583 回答
0

我发现了一个让这个问题更容易接受的半解决方法:您可以将导航控制器的模拟指标设置为 Master(320 点宽,纵向或横向高度)或 Form Sheet(540 x 620) .

然后在它包含的根视图控制器中,您可以通过使其自由形式来设置所需的大小(就像您所做的那样)。

看起来此视图的大小默认用于弹出框(或者您可以通过“弹出框:使用显式大小”设置在此视图控制器上显式设置它)。但是请注意,如果您在此视图控制器的模拟指标中显示导航栏,则必须通过从视图的弹出框显式大小中减去栏的高度或将其隐藏在弹出框根视图的模拟指标中来进行补偿控制器。

于 2013-11-24T14:58:23.520 回答