iPad上奇怪的约束行为

我尝试做一个简单的事情,得到一个奇怪的结果。

我有一个UIViewController里面有一个UIImageView

查看

我设置如下的约束

限制

我得到以下结果

在这里输入图像说明

我的问题是

  1. 为什么我在左侧和右侧填充? 要删除该填充,我必须使用从-20而不是-16的约束,但是然后是框架x – 4。

  2. 为什么垂直空间自动超级查看(顶部空间)-20

有人有这种行为之前,现在如何解决?

https://github.com/eikebartels/iPadTest https://github.com/eikebartels/iPadTest.git

提前致谢,

埃克

问题是你已经连接你的约束到超视图的边距 。 如果你想到达超级视图的边缘,你需要连接到超级视图本身 (常量为零)。

请注意约束描述中的“边距”一词:

在这里输入图像说明

连接到页边空白的问题是,您不知道应用程序运行时的边距是多less。 这是一个危险的策略。 但是,你知道视图的边缘在哪里,所以如果你想匹配它们,限制到他们 ,而不是边缘。 只有在确实需要匹配边距时才使用边距,无论它们是什么。 例如,一个常量为0的约束保证了一个很好的空间到超视图的边缘。 但是你不想要任何空间!