Cocoa touch 如何使自动布局更改帧大小以保持旋转约束?

Cocoa touch 如何使自动布局更改帧大小以保持旋转约束?,cocoa-touch,interface-builder,autolayout,nslayoutconstraint,Cocoa Touch,Interface Builder,Autolayout,Nslayoutconstraint,我有一个带有非常简单约束的UIView,作为UIViewController上的根视图: 此视图有一个子视图,其中包含该子视图中的所有my UI元素 这两个视图都具有。translatesAutoResizengMaskintoConstraints=NO。否则,将生成不一致的约束,从而导致崩溃 旋转设备时,视图的位置不会移动。它保持与纵向方向相同的宽度,位于框架的左侧。在lldb中打印帧证实了这一点 我需要添加什么来强制在纵向和横向中应用前导/尾随/顶部/底部空间约束 我已尝试手动请求更新,

我有一个带有非常简单约束的
UIView
,作为
UIViewController
上的根视图:

此视图有一个子视图,其中包含该子视图中的所有my UI元素

这两个视图都具有
。translatesAutoResizengMaskintoConstraints=NO
。否则,将生成不一致的约束,从而导致崩溃

旋转设备时,视图的位置不会移动。它保持与纵向方向相同的宽度,位于框架的左侧。在lldb中打印帧证实了这一点

我需要添加什么来强制在纵向和横向中应用前导/尾随/顶部/底部空间约束

我已尝试手动请求更新,即:

# On the VC
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{
    [self.view setNeedsUpdateConstraints];
    [self.storyView setNeedsUpdateConstraints];
}

但这并没有产生任何效果。

您的描述有点混乱。让我们为视图命名:您有一个根视图和一个子视图。据推测,您的rootView是视图控制器实例化的标准空UIView。子视图是您拥有所有UI的地方。子视图的顶部、底部、后缘和前缘使用约束固定到根视图的顶部、底部、后缘和前缘。换句话说:子视图完全填充并覆盖根视图。旋转设备时,子视图不会随rootView一起旋转?对吗?@Maarten-对;事实上,两个视图都不旋转(打印默认空视图的帧显示它仍处于纵向)。