由于两个视图之间的高度相同,我如何决定哪个视图缩小/膨胀?
Posted
技术标签:
【中文标题】由于两个视图之间的高度相同,我如何决定哪个视图缩小/膨胀?【英文标题】:With equal heights constrain between two views, how do I decide which view shrinks/inflates? 【发布时间】:2020-05-29 16:00:51 【问题描述】:假设我有一个水平堆栈视图,其中存在 2 个堆栈视图(每个内部堆栈视图自然代表一列)。每个内部堆栈视图都有 2 个标签。现在我用约束设置相等,并断言第一个内部堆栈视图中的第一个约束需要与第二个堆栈视图中的第一个视图具有相等的高度。我如何决定是第一个缩小还是第二个增长?
在这种情况下,绿色视图增长了。如何让黄色视图缩小?
【问题讨论】:
您可以通过为视图提供不同的内容压缩阻力和拥抱优先级来做到这一点。 您不一定需要同时设置两者。但是,你必须确保你没有定义一个不可能的布局。您是否希望 TopRight 标签的宽度与文本所需的一样宽?如果它太宽以至于将 TopLeft 标签完全挤压到 1 磅宽,会发生什么?你想让你的“列”等宽吗?您是否希望 TopRight 标签仅与需要一样高,并强制 TopLeft 标签截断? 【参考方案1】:您可以通过设置 Content Hugging Priority 和 Content Compression Resistance Priority 来决定是第一个堆栈视图中的第一个视图应该缩小还是第二个堆栈视图中的第一个视图增长对彼此而言。
如果您希望第一个堆栈视图中的视图缩小,则将第一个堆栈视图中第一个视图的垂直内容压缩阻力优先级设置为小于第二个堆栈视图中第一个视图的垂直内容拥抱优先级,反之亦然设想。
例如,将第一个堆栈视图中第一个视图的垂直内容压缩阻力优先级设置为 250,将第二个堆栈视图中第一个视图的垂直内容拥抱优先级设置为 251。在这种情况下,第一个堆栈视图中的视图将缩小.
【讨论】:
以上是关于由于两个视图之间的高度相同,我如何决定哪个视图缩小/膨胀?的主要内容,如果未能解决你的问题,请参考以下文章