由于纵向尺寸的superview框架,在横向模式下iOS自动布局不正确?

由于纵向尺寸的superview框架,在横向模式下iOS自动布局不正确?,ios,autolayout,Ios,Autolayout,我在横向模式下的自动布局出现问题。我相信这是因为父视图的框架是用纵向坐标表示的,例如宽度=768,高度=1024 我的问题是: a) 自动布局是从框架或边界派生的吗 b) 如果它是从帧中派生出来的,那么正确的方法是什么(通常等于边界) 还有,在我们用iOS 11在Xcode 9中重建应用程序之前,有人知道为什么这不是一个问题吗?以前它是用Xcode 8和iOS 10构建的。Fame是外部视图坐标,而边界是内部的 这意味着基于其帧的视图位置与其超级视图的边界相关。通常,自动布局会对方向的更改做出

我在横向模式下的自动布局出现问题。我相信这是因为父视图的框架是用纵向坐标表示的,例如宽度=768,高度=1024

我的问题是:

a) 自动布局是从框架或边界派生的吗

b) 如果它是从帧中派生出来的,那么正确的方法是什么(通常等于边界)


还有,在我们用iOS 11在Xcode 9中重建应用程序之前,有人知道为什么这不是一个问题吗?以前它是用Xcode 8和iOS 10构建的。

Fame是外部视图坐标,而边界是内部的

这意味着基于其帧的视图位置与其超级视图的边界相关。通常,自动布局会对方向的更改做出反应。查看您的约束,确保没有任何宽度/高度硬编码,并且安装了所有必要的前导/尾随和顶部/底部约束

自iOS11发布以来,苹果公司推出了安全区域——“虚拟”空间,被视为用户交互可用的区域。它取代了顶部/底部布局指南。有关详细信息,请访问:


请提供更多详细信息,以获得更具体的答案。

“父视图的框架以纵向坐标表示”-这是什么意思?您是否明确设置父视图的
,而不是在该视图上使用自动布局?若然,原因为何?如果不是,你能更好地解释发生了什么吗?可能会显示一两张图片?对不起,我只是说在viewDidLoad中,superview的宽度/高度是1024/768(横向模式)。在ViewDidLayoutSubView中,superview的宽度/高度更改为768/1024(纵向视图)。布局问题似乎就是由此产生的。我将尝试添加屏幕截图和更多细节。谢谢你回答我的结构不好的问题。原来我的问题与根视图控制器中的代码有关:nextVC.view.frame=self.view.bounds;这显然成为了一个固定大小的约束,它贯穿了布局过程。由于我没有在当前视图控制器的代码中立即看到它,我天真地认为它是从iOS错误地强加给我的。另外,我被告知布局引擎在iOS 11中被更改。