我正在使用UIStackView在我的一个tableview单元xib中进行布局以使调整大小变得更加容易,并且我还在使用size类,因为手机和平板电脑之间存在布局差异。

由于某些原因,我必须为每个大小类使用不同的stackview。对于iPhone说stackview1,对于iPad说stackview2。现在,我已将label1移至iPhone尺寸类的stackview1中,切换到iPad尺寸类,并希望将label1stackview2移至stackview1(变灰)。但是一旦执行完此操作并切换回iPhone尺寸级别,Label1就会从stackview1中移出,iPhone的布局就会搞砸。

想知道是否有人之前遇到过这种情况并得到了解决方案?

更新了

为了进一步澄清,

  • 我纯粹是通过约束来实现以下两个布局,并且我使同事们相信使用UIStackView进行布局可以更容易地适应UI更改。例如,在下面的布局中,label1label3之间有一个距离约束(12),如果我希望label3label1隐藏/ nil后label2向上移动,则我将不得不手动将距离约束设置为0。如果通过UIStackView,将label1label2设置为隐藏,我们就全部设置好了。这只是一个例子,还有更多这样的变化。
  • 我为size类需要不同的UIStackView的原因是由于设计差异。

  • 电话布局
    ios - iOS-大小类的不同stackviews-LMLPHP
    平板电脑布局
    ios - iOS-大小类的不同stackviews-LMLPHP

    最佳答案

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

    关于ios - iOS-大小类的不同stackviews,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50431047/

    10-13 04:01