注意:此问题不有关正在运行的应用中的观看视图的大小。它严格来说是Interface Builder中画布上导航控制器表示的大小。
此图显示了Interface Builder中的问题行为。
我还没有找到使导航控制器表示更小的方法。你可以想象,在很多Popovers中有很多导航控制器的iPad应用程序会导致Storyboard画布变得非常拥挤。
请注意,为了纠正导航控制器根视图控制器的大小,我必须将根视图控制器的模拟指标大小调整为"自由形式",然后手动指定它的根视图大小以匹配容器视图大小。
此图显示了导航控制器元素的所需行为。
此图还提供了问题原因的提示。如果存在插入视图控制器,则容器视图的大小不会向下渗透到导航控制器元素。
我发现了3个类似的问题,但没有一个提供插图,也没有一个直接说明Xcode 5中仍然存在这个问题。
过去90天,我在Apple开发者论坛上找不到任何答案。
所以问题是,在Interface Builder中是否有一些控件或设置可以解决我的问题?
上面列出的问题的答案之一提供了一个技巧,涉及为每个导航控制器添加一个未使用的视图控制器和容器视图,但这是不能令人满意的,因为向故事板添加cruft比使用超大的导航控制器更糟糕。
答案 0 :(得分:1)
不确定这是否能解决您的具体情况,但经过多次搜索后我发现(至少在Xcode 5.1中)故事板边栏中有一个“视图控制器”面板,带有“模拟大小”条目 - 选择“自由形式”和根据需要设置你的宽度和高度。
答案 1 :(得分:0)
我找到了一个半修复程序,使这个问题更加可口:你可以将导航控制器的模拟指标设置为Master(320点宽,纵向或横向高度)或Form Sheet(540) x 620)。
然后在它包含的根视图控制器中,你可以通过自由形式设置你想要的大小(正如你所做的那样)。
默认情况下,此视图的大小似乎用于弹出窗口(或者您可以通过“Popover:Use Explicit Size”设置在此视图控制器上显式设置它)。但请注意,如果要在此视图控制器的模拟度量标准中显示导航栏,则必须通过从视图的弹出显式大小中减去条形高度或将其隐藏在弹出根视图的模拟度量中来进行补偿。控制器。