只有在将方向更改为横向并返回到纵向后,才能正确显示纵向布局

时间:2015-10-08 11:21:59

标签: ios iphone xamarin xamarin.ios autolayout

我有一个简单的布局,有多个视图和约束来根据需要定位和调整它们。当我将应用程序部署到模拟器或设备时,所有视图的X,Y和宽度都具有适当的大小。另一方面,高度始终为0.根据超视图,所有视图都具有比例高度。

现在,如果我将方向翻转为横向然后再回到肖像,则所有内容都会正确显示(高度不再为0)。

我之前使用了相同的逻辑和比例高度,在更新到Xcode 7后,我开始在新创建的视图控制器中看到这个问题。

编辑您可以从latest snapshot version获取.xib

2 个答案:

答案 0 :(得分:1)

如果使用自动遮罩调整大小或使用自动布局来修复此问题,则必须设置有关方向更改的不同视图更新方法调用。

答案 1 :(得分:1)

您的.xib配置了启用了大小类,但您的视图和约束都配置为仅应用于紧凑宽度,常规高度。

wC hR is Checked, Any Any is not

我经历并更改了视图和约束以应用于任何宽度,任何高度,这解决了横向布局的问题。

Download the modified .xib file here

我建议在使用Autolayout时使用Xcode 7的预览助手视图,因为它可以让您在多个方向同时看到多个设备。在这种情况下,这确实有助于显示布局在纵向上很好,但在横向上却没有。

这就是我在您提供的.xib中看到的内容 Preview of populated portrait but empty landscape views

随着我的.xib的变化 Preview showing populated portrait and landscape

怎么会发生这种情况?一种方法是您可能不小心将故事板编辑器设置为特定的大小类。如果在编辑器底部看到蓝色边框,则您添加的任何内容都将配置为仅为该特定大小类安装。您可以单击显示的大小类将其更改为w任何h Any返回默认模式。

Blue bar at the bottom of the storyboard editor