尺寸类紧凑高度不适用于 UIStackView 的轴和真实设备

Posted

技术标签:

【中文标题】尺寸类紧凑高度不适用于 UIStackView 的轴和真实设备【英文标题】:Size Class compact height doesn't work properly with UIStackView's axis and real device 【发布时间】:2016-10-16 04:30:06 【问题描述】:

这就是它在我的故事板和预览中的样子:

这就是我在故事板中为 UIStackView 设置的内容:

但是当我在真实设备上运行它时,一切都会改变:

为什么会这样?

请注意,我这里有两个UIStackViews:带有标签框的图标,两个按钮。第二个工作正常,但不是第一个。为什么?它以完全相同的方式完成。 UIStackView的两个直接子视图

编辑

我意识到问题出现UIImageView 作为UIStackView 的直接子视图。

【问题讨论】:

看起来你的约束有问题。 您能否提出可能的问题? 似乎应用了错误的尺寸类布局。如果视图在呈现之前被布置在屏幕外,就会发生这种情况。它将是 Any*Any,因为视图无法知道要加载哪个尺寸类。 不懂你。视图在哪里? 在创建视图控制器和呈现它之间的时间。如果有任何东西试图访问视图控制器视图,它将被加载和布局,但没有大小类。 【参考方案1】:

只需点击“+”按钮分布部分并选择任意 x 紧凑高度并均匀填充。我希望这工作顺利。

【讨论】:

我确实像你说的那样,但它仍然不起作用:(还有其他想法吗?有问题吗? 当特征集合发生变化时,有没有办法强制视图重新布局? @BartłomiejSemańczyk 好吧,我认为没有办法强迫它。因为,当布局水平或垂直发生变化时,ios 系统必须计算所有特征以正确适应布局。也许您可以在代码中对此进行一些修改,但我不完全确定。看看这个文档developer.apple.com/documentation/uikit/uitraitenvironment

以上是关于尺寸类紧凑高度不适用于 UIStackView 的轴和真实设备的主要内容,如果未能解决你的问题,请参考以下文章

UITableViewCell 中带有多行标签的 UIStackView 高度不正确

UIStackView contentHuggingPriority 不适用于填充可用空间

ios7 忽略任何大小类

iOS 9 UIStackView 设置其他 UIStackView 高度 0

尺寸等级和 Plus 电话

高度百分比不适用于纵向屏幕方向