大小为 类 的 UIStackView 子视图

UIStackView subviews with size classes

尝试使用大小 classes.classes.iPhone 的 2 个标签和 iPad 的 3 个标签实现 UIStackView。

查看层次结构

  1. 默认大小class

    [UIStackView] 
      [UILabel 1] [UILabel2]
    [UIStackView] 
    

  2. RxR 尺寸 class

    [UIStackView] 
      [UILabel 1] [UILabel2] [UILabel3]
    [UIStackView] 
    

正如您在上面的屏幕截图中所见,它在 Storyboard 中看起来完全符合预期,但在模拟器上 iPad 视图混乱。

iPhone输出(好)

iPad 纵向输出(搞砸了)

iPad 横向输出(搞砸了)

iPad 发生了什么事??是错误还是我遗漏了什么? 谢谢。

我创建了一个sample project

您似乎使用 Interface Builder 中的 "installed" 复选框隐藏了 iPhone 上的标签之一。使用 "hidden" 复选框似乎可以解决问题。我猜这是一个错误。

按照以下步骤实现您的要求:

  • 将一个水平 Stackview 拖到您的界面生成器中
  • 设置它的约束,如:top,leading, =trailing and fixed height
  • 将三个标签拖放到其中 select 并设置一个约束条件:Equal width
  • 现在 select 第二个或中间标签,然后从 attribute inspector 单击 installed 旁边的 + 按钮和 select 常规宽度和高度。它将添加规则的、规则的变化和 uncheck the checkbox for that R,R variation。请参阅下面的屏幕截图以便更好地理解,

大功告成!现在你的中心标签将不会显示在 iPad 中,每个标签都会显示在 iPhone!

在我的案例中,请参见下面 iphone and ipad 的结果截图!

iPhone :

iPad :

更新:

如果您希望两个标签在 iPhone 中隐藏并在 iPad 中显示,则再添加一个变体:Compact Width Regular Height 用于中间标签并取消选中复选框以卸载。参考下面的截图,