iPhone 6 plus 上堆栈视图的奇怪行为

Posted

技术标签:

【中文标题】iPhone 6 plus 上堆栈视图的奇怪行为【英文标题】:strange behavior with stack view on iPhone 6 plus 【发布时间】:2016-06-30 11:34:48 【问题描述】:

我作为一个新的 swift dev 尝试了 stackView,它们对于布局相关的问题非常方便,但是我在 iPhone 6 plus 屏幕上仍然有一个奇怪的行为(见下图)

3 张图片在 stackView 中 StackView 在一个单元格中,显然他在一个tableview 中。 StackView 约束设置为单元格的上、左、右 0 和单元格高度的 80%

结果如下:

iPhone 6 上的结果:

iPhone 6 plus上的结果

编辑:

    尺寸不合适的视图仅在 iPhone 6 plus 上发生,而不在 iPhone 6S plus

    上发生

    在我的情况下,对于 +14 的常数,在单元格百分比上,问题消失了(但尺寸不再在我的设计指南中)

谢谢

【问题讨论】:

在为stackViewimageView 设置不同的背景颜色后,能否再添加一张截图?还将imageViewclipToBounds 设置为true 【参考方案1】:

您是否尝试过将三个图像限制为相同的高度?

【讨论】:

好的,那么粉色/橙色元素是什么?它们是如何受到约束的?另外,粉红色位前面的图像是堆栈视图吗? 在屏幕上,红色/粉色视图只是单元格背景色【参考方案2】:

为图像设置相等的宽度或为图像设置内容拥抱和内容压缩优先级,以便它知道如何调整堆栈大小。在我看来,这里唯一的方法是让它们的宽度相等。

否则,您将始终具有基于拥抱/压缩值的某种约束解决方案,即使相同会产生模糊的布局,或者如果不相同且不模糊,在某些情况下也会产生大小差异。另一方面,等宽应该保证宽度。

【讨论】:

选择三个图像并设置相等的宽度没有任何改变,我什至尝试选择第一张图像(裁剪最多的图像)并设置宽度或更改优先级为拥抱,但它没有改变任何东西跨度> @MehdiS。尝试将 UIImageViews 包装到 UIViews 中。 UIStackView 直接在其每个子视图上设置自己的约束。可以是放弃你的约束,或者只是用更高优先级的约束覆盖它们。

以上是关于iPhone 6 plus 上堆栈视图的奇怪行为的主要内容,如果未能解决你的问题,请参考以下文章

模拟器上奇怪的 iphone 6 plus 屏幕尺寸(与启动屏幕图像相比)

强制 UISplitViewController 始终以横向显示主视图(仅)(在 iPhone 6 Plus 上)

iphone 6 plus 上自动布局的意外结果

在 iPhone 6 Plus 上关闭 UISplitViewController 弹出框时 UIWebView 被拉伸

iphone 6 plus 上的 MKMapView 问题,视图中嵌入的地图不显示

iPhone 6 Plus 横向模式下带有标签和固定元素的奇怪错误