当我在iPad 8.4上旋转视图控制器时,我的视图不会一直延伸到右边:
在此示例中,红色视图是我的根视图控制器,它永远不应该可见。我嵌入了一个导航控制器using UIViewController containment,它应该填满整个屏幕并覆盖红色部分。
为什么会导致此行为,我该如何解决?
如果我尝试在iPhone或iOS 9上运行它,它就会被修复。
答案 0 :(得分:0)
我能够用最少的步骤重现问题:
重现问题的步骤(或try this GitHub project):
解决问题的方法:
autoresizingMask
从<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
更改为<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
。 (默认情况下,当您将视图控制器拖到故事板时,它将使用...Sizable
变体。但是,如果删除视图(而不是视图控制器),然后将视图拖回视图控制器,它将使用flexibleMax...
变体。)translatesAutoresizingMaskIntoConstraints
设置为YES
而不是NO
。如果您比较auto layout way of embedding a view controller与故事板嵌入视图控制器的方式,您将看到故事板设置translatesAutoresizingMaskIntoConstraints=YES
,因此,不要尝试设置约束,只需将translatesAutoresizingMaskIntoConstraints设置为YES,并设置childView.frame = parentView.bounds
,以模仿故事板嵌入行为。 (注意,您还可以看到,默认情况下,情节提要会将嵌入视图的autoresize
设置为W+H
,因此您应确保您的视图具有该设置。)