我正在使用 UIStackView 在我的一个 tableview 单元 xib 中进行布局,以便更轻松地调整大小,并且我还使用尺寸类,因为手机和平板电脑之间存在布局差异。
由于某种原因,我必须为每个尺寸类别使用不同的堆栈 View 。 iPhone 使用 stackview1 ,iPad 使用 stackview2 。现在我已将 label1 移动到 iPhone 尺寸类中的 stackview1 中,切换到 iPad 尺寸类并想将 label1 移动到 stackview2stackview1 中的 code>(显示为灰色)。但是一旦我这样做并切换回 iPhone 尺寸等级,Label1 就会从 stackview1 中移出,并且 iPhone 布局会搞砸。
想知道是否有人以前遇到过这种情况并得到任何解决方案?
更新
为了进一步澄清,
我完全通过约束实现了以下两个布局,同事们说服我,使用 UIStackView 的布局可以更容易地适应 UI 的变化。例如,在下面的布局中,如果我希望 label3 向上移动一次,则 label1 和 label3 之间存在距离约束 (12) label1 和 label2 是隐藏/nil,我将不得不手动将距离约束设置为 0。如果通过 UIStackView ,请设置 label1 和 label2 被隐藏,我们都设置好了。这只是一个例子,这样的变化还有很多。
我之所以需要不同的 UIStackView 是因为设计上的差异。
手机布局
平板电脑布局
Best Answer-推荐答案 strong>
看起来没有办法使用相同的 stackview 来实现目标。我最终使用一个 xib 解决了它并部分应用了 stackview。在上面的示例中,我将标签 1、2 和 3 放在了堆栈 View 中,因为这三个标签的布局可以在不同的尺寸类别中重复使用。其余的约束是单独设置的,没有stackview。
关于iOS - 大小类的不同堆栈 View ,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/50431047/
|