繁体   English   中英

我不明白约束优先权

[英]I don't understand constraints priority

在此输入图像描述

我创建一个具有以下约束的rect:

在此输入图像描述

我虽然如果我将width >=250999约束设置为优先级,那么宽度equal == 200将适用于小型设备,并且width >= 250

但它没有奏效。 我看了文档:

解决所需的约束后,自动布局尝试按从高到低的优先级顺序解决所有可选约束。 如果它无法求解可选约束,它会尝试尽可能接近所需结果,然后转到下一个约束。

这种不平等,平等和优先级的结合为您提供了极大的灵活性和动力。 通过组合多个约束,您可以定义随着用户界面中元素的大小和位置的变化而动态调整的布局。

将应用约束的优先级以解决两个不同约束之间的冲突。 将使用具有更高优先级的约束来修改框架的视图。 因此,您应该有另一个视图或使用superview将优先级应用于约束。

这是解释阻力优先级的一个很好的答案:

Cocoa Autolayout:内容拥抱与内容压缩阻力优先

iOS做你所说的。 根据屏幕大小,约束不会自动禁用。 首先应用具有较高优先级的约束。

因此,当iOS需要布局视图时,它将查找您提供的规范。 现在,根据您给出的规范,无论屏幕大小如何,视图的宽度都应为200(最高优先级)。 因此,应用此约束,您将获得宽度为200的视图。

你怎么能做你想做的?

您应该尝试禁用“宽度”规范为200的约束,当您的应用程序在大屏幕上运行时,您的其他约束将起作用并给出正确的结果。

对于禁用/启用约束 -

Stackoverflow链接

Apple开发者库

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM