尝试使用 size classes 来实现 UIStackView,其中 iPhone 有 2 个标签,iPad 有 3 个标签。
查看层次结构
默认尺寸等级
[UIStackView]
[UILabel 1] [UILabel2]
[UIStackView]
RxR 尺寸等级
[UIStackView]
[UILabel 1] [UILabel2] [UILabel3]
[UIStackView]
正如您在上面的屏幕截图中看到的那样,它在 Storyboard 中看起来完全符合预期,但在模拟器 iPad 上的 View 却一团糟。
iPhone 输出(好的)
iPad 纵向输出(搞砸了)
iPad 横向输出(搞砸了)
iPad 发生了什么?这是一个错误还是我错过了什么?
谢谢。
我创建了一个 sample project .
Best Answer-推荐答案 strong>
按照以下步骤实现您的要求:
- 将一个水平 Stackview 拖入您的界面构建器
- 设置它的约束,例如:
top,leading,=trailing and fixed height
- 将三个标签拖放到其中并一起选择并设置一个约束:
等宽
- 现在选择第二个或中间标签,然后从
attribute inspector 点击 installed 旁边的 + 按钮,然后为宽度和高度选择常规。它将添加常规、常规变体并取消选中该 R、R 变体的复选框 。请参阅下面的屏幕截图以更好地理解,
你就完成了!现在您的中心标签将不会显示在 iPad 中,而每个标签都将显示在 iPhone 中!
在我的例子中,请看下面 iphone 和 ipad 的结果截图!
iPhone:
iPad:
更新:
如果您想要两个在 iPhone 中隐藏标签并在 iPad 中显示,则再添加一个变体:Compact Width Regular Height 用于中间标签并取消选中复选框以卸载。引用下面的截图,
关于ios - 具有大小类的 UIStackView subview ,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/47286134/
|