iPad 上的奇怪约束行为
Strange constraints behaviour on iPad
我尝试做一件最简单的事情,结果却很奇怪。
我有一个 UIViewController,里面有一个 UIImageView
我设置了如下约束
我得到以下结果
我的问题是
为什么我的左右两边都有填充?要删除该填充,我必须使用来自 -20 而不是 -16 的约束,但随后是框架 x - 4。
为什么垂直space到superview(topspace)自动-20
有没有人以前有过这种行为,现在怎么解决?
https://github.com/eikebartels/iPadTest
https://github.com/eikebartels/iPadTest.git
提前致谢,
艾克
问题是您已将约束连接到父视图的 边距。如果你想到达超级视图的边缘,你需要连接到超级视图本身(常数为零)。
注意约束说明中的单词"margin":
连接到边距的问题是您不知道应用程序运行时边距是多少。这是一个冒险的策略。但是您确实知道视图的边缘在哪里,所以如果您想要匹配它们,请限制为 它们,而不是边缘。仅当您确实想要匹配边距时才使用边距,无论它们是什么。例如,边距常数为 0 的约束保证了父视图边缘的漂亮 space。但是你不想要任何 space!
我尝试做一件最简单的事情,结果却很奇怪。
我有一个 UIViewController,里面有一个 UIImageView
我设置了如下约束
我得到以下结果
我的问题是
为什么我的左右两边都有填充?要删除该填充,我必须使用来自 -20 而不是 -16 的约束,但随后是框架 x - 4。
为什么垂直space到superview(topspace)自动-20
有没有人以前有过这种行为,现在怎么解决?
https://github.com/eikebartels/iPadTest https://github.com/eikebartels/iPadTest.git
提前致谢,
艾克
问题是您已将约束连接到父视图的 边距。如果你想到达超级视图的边缘,你需要连接到超级视图本身(常数为零)。
注意约束说明中的单词"margin":
连接到边距的问题是您不知道应用程序运行时边距是多少。这是一个冒险的策略。但是您确实知道视图的边缘在哪里,所以如果您想要匹配它们,请限制为 它们,而不是边缘。仅当您确实想要匹配边距时才使用边距,无论它们是什么。例如,边距常数为 0 的约束保证了父视图边缘的漂亮 space。但是你不想要任何 space!