我有这个问题,其中ios 8中的表单采用为"compact - width regular -height"(即所有iPhone约束)而不是"any-any"或"regular -width regular -height"设置的约束.我有两种不同的iPhone和iPad设计,因为表格正在消耗iPhone的约束,但我无法实现相同的目标.任何有关这方面的帮助都会非常谨慎
从UIViewController类引用:
在水平常规环境中,显示以屏幕为中心的内容的演示样式.内容区域的宽度和高度小于屏幕尺寸,并且在内容下方放置调光视图.如果设备处于横向方向且键盘可见,则向上调整视图的位置以使视图保持可见.所有未覆盖的区域都是灰色的,以防止用户与它们进行交互.
在水平紧凑的环境中,此选项的行为与
UIModalPresentationFullScreen
.
由于iPad上的表单表单是紧凑的宽度和常规高度,因此这些是您在呈现表单时获得的值.
如果您不想使用默认大小类,则可以覆盖它们.
如果视图控制器是另一个视图控制器的子视图控制器,则可以使用setOverrideTraitCollection(_:forChildViewController:)
和覆盖子控制器的大小类约束.
如果你的视图控制器不是子视图控制器,你真的不应该改变特征集合,但你可以使用这个黑客来做.
最佳解决方案是将视图控制器设计为适合于应用于表单工作表视图控制器演示文稿的默认(正确)大小约束.您通常可以通过避免设置宽度约束并仅设置前导和尾随约束来实现此目的.