iOS - 大小类的不同堆栈视图

时间:2018-05-20 02:01:47

标签: ios iphone swift ipad uistackview

我正在使用UIStackView在我的一个tableview单元格xib中进行布局,以便更轻松地调整大小,而且我也使用大小类,因为手机和平板电脑之间存在布局差异。

由于某种原因,我必须为每个大小类使用不同的堆栈视图。为iPhone设置stackview1,为iPad设置stackview2。现在,我已将label1移至iPhone尺寸类stackview1,切换到iPad尺寸类,并希望将label1移至stackview2 stackview1(灰色出)。但是,一旦我执行此操作并切换回iPhone大小等级,Label1就会移出stackview1并且iPhone布局会崩溃。

想知道是否有人以前遇到过此问题并获得任何解决方案?

已更新

进一步澄清,

  1. 我完全通过约束实现了以下两个布局,同事们确信使用UIStackView的布局可以更容易地适应UI更改。例如,在下面的布局中,label1label3之间存在距离约束(12),如果我希望label3向上移动label1和{{1}隐藏/无,我必须手动将距离约束设置为0.如果通过label2,将UIStackViewlabel1设置为隐藏,我们都已设置。这只是一个例子,还有更多这样的变化。

  2. 我之所以需要不同label2尺寸类,是因为设计上存在差异。

  3. 手机布局 iPhone Layout 平板电脑布局 iPad Layout

1 个答案:

答案 0 :(得分:0)

使用相同的stackview似乎无法实现目标。我最终使用一个xib解决了它,并部分地应用了stackview。在上面的示例中,我将标签1、2和3放在了stackview中,因为这三个标签的布局可以在不同大小的类中重复使用。其余约束是在没有stackview的情况下单独设置的。