UIStackView 仅在 iPhone SE 模拟器上剪裁和切断

UIStackView clipping and cutting off only on iPhone SE Simulator

我创建了一个界面,当用户第一次打开应用程序时,会弹出一个包含一些页面浏览量的入门教程屏幕。首先,每个页面包含一个UIImage,和两个UILabels。一个标签由 HeaderSubheader 组成。我已经为每个 iPhone 测试了这个(它可以完美地显示多行,完全没有问题,包括子 header 上方的单行 header),包括 iPhone SE 模拟器,它似乎是唯一一个标签有问题的设备,当它是多行时 UIImage 很好。

我有两个堆栈视图,一个仅包含标题和子标题,另一个嵌套在另一个包含图像视图、标题和子标题的堆栈视图中。

基于这个问题,我已经尝试了无数的 Whosebug 解决方案,包括一些涉及多行的解决方案以及用于修复的堆栈视图,但其中 none 有效或者我之前启用了这些属性。

我确实认为这与当前的限制有关,但我试过使用它们但没有运气。这些标签要么会出现更多错误,要么会保持原样。

这是来自 iPhone SE Simulator

的示例

如您所见,我什至看不到继续的副标题文本,甚至根本看不到甚至没有显示的标题。

查看Objects

堆栈视图设置 - 两个标签

堆栈视图设置 - 两个标签 + 图像视图

约束条件

<constraints>
    <constraint firstItem="flc-wn-Ci4" firstAttribute="top" secondItem="h6Y-Dh-vhL" secondAttribute="top" constant="50" id="7nm-Cc-h2H"/>
    <constraint firstItem="h6Y-Dh-vhL" firstAttribute="trailing" secondItem="flc-wn-Ci4" secondAttribute="trailing" constant="24" id="mfT-Ii-Uz5"/>
    <constraint firstItem="h6Y-Dh-vhL" firstAttribute="bottom" relation="greaterThanOrEqual" secondItem="flc-wn-Ci4" secondAttribute="bottom" constant="10" id="ood-l7-Unw"/>
    <constraint firstItem="flc-wn-Ci4" firstAttribute="leading" secondItem="h6Y-Dh-vhL" secondAttribute="leading" constant="24" id="q7k-3q-izI"/>
</constraints>

我什至尝试通过代码将行数设为0

 @IBOutlet var headingLabel: UILabel! {
    didSet {
        headingLabel.numberOfLines = 0
    }
}

@IBOutlet var subHeadingLabel: UILabel! {
    didSet {
        subHeadingLabel.numberOfLines = 0
    }
}

如果有人有解决方案或某种 hack 解决方案,我将不胜感激,因为我 运行 没有解决这个问题的想法,因为发布这个问题是我最后的选择。

为此,您需要将顶部堆栈视图嵌入到滚动视图中,以使标签根据其内容展开。