尺寸类紧凑高度不适用于 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 不适用于填充可用空间