Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/116.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Autolayout—两个对象之间的关系,即;占主导地位;?_Ios_Xcode_User Interface_Autolayout_Constraints - Fatal编程技术网

Ios Autolayout—两个对象之间的关系,即;占主导地位;?

Ios Autolayout—两个对象之间的关系,即;占主导地位;?,ios,xcode,user-interface,autolayout,constraints,Ios,Xcode,User Interface,Autolayout,Constraints,假设屏幕上有两个对象。我用约束条件将其中一个放置在我想要的位置和大小 另一个对象的约束是: 将中心X与对象1对齐 将中心Y与对象1对齐 与对象1等宽 与对象1等高 所以。。。为什么对象1会改变以满足第二个对象的高度/宽度,而不是相反-因此也会设置不正常的定位?我要求第二个对象的大小和位置与对象1相同,有这4个约束条件,不是吗 谢谢你的解释 编辑:第二个对象是一个UIImageView,其中“Aspect Fit”设置为内容模式。对象1是UILabel。所有视图都需要从某处获取其高度和宽度。但

假设屏幕上有两个对象。我用约束条件将其中一个放置在我想要的位置和大小

另一个对象的约束是:

  • 将中心X与对象1对齐
  • 将中心Y与对象1对齐
  • 与对象1等宽
  • 与对象1等高
所以。。。为什么对象1会改变以满足第二个对象的高度/宽度,而不是相反-因此也会设置不正常的定位?我要求第二个对象的大小和位置与对象1相同,有这4个约束条件,不是吗

谢谢你的解释


编辑:第二个对象是一个UIImageView,其中“Aspect Fit”设置为内容模式。对象1是UILabel。

所有视图都需要从某处获取其高度和宽度。但您没有为这两个视图提供高度或宽度

如果不提供高度/宽度约束,则图像视图和标签都可以从其
intrinsicContentSize
获取高度和宽度

intrinsicContentSize
转换为约束,其优先级由和为每个轴确定


如果您查看这两个视图的值(在情节提要中的大小检查器中,或者在代码中,如果您在代码中创建它们),您将看到这是一个僵局,或者图像视图具有更高的优先级并获胜。无论哪种方式,您都需要通过提高或降低其中一个视图的优先级,以您希望的方式解决这场战争。

如果在应用程序运行时使用该应用程序上的视图调试器,这一切都会更加清晰。您甚至可能会看到一个感叹号和一条警告,说明您的布局不明确。奇怪的是,这两个对象的水平/垂直内容压缩优先级都为750。将UIImageView上的水平/垂直压缩阻力优先级更改为255并没有解决问题,但将其更改为250解决了问题。非常感谢。