0

我不确定发生了什么以及如何处理。我在一个单元格中有一个 UIView,我使用 IB 设置了约束,并且由于某种原因它延伸到单元格的末尾。我怎样才能阻止它伸展。

在此处输入图像描述

结果如下:

在此处输入图像描述

我正在动态注入步进控件,但正如您所见,UIView 延伸到单元格的末尾。我尝试了引脚宽度,然后它完全搞砸了一切,甚至不显示 UIView。

这是约束的屏幕截图:

在此处输入图像描述

4

1 回答 1

0

好的,让我在这里画一些区别。

  • 简单的方法是你总是在单元格中有步进器(并且没有 UIView)。对于那些我们不应该看到步进器的单元格,您将其设置hidden为 YES;对于我们应该看到它的那些单元格,您将其设置hidden为 NO。这就是我会做的。

  • 执行此操作的程序员方法是您的单元格中根本没有任何蓝色 UIView。您在代码中添加步进器,并在代码中提供其约束以定位它。你说:

    所以我不必硬编码坐标

    但是在代码中添加约束并不是坐标的“硬编码”。使用约束,您可以根据父视图的插图概念性地描述位置,并且随着父视图调整大小,您仍然可以正确定位。因此,添加步进器及其约束没有哲学上的反对意见,不这样做只是懒惰。

  • 懒惰但浪费的方法是做你正在做的事情,即在笔尖中添加蓝色的UIView作为指南。但是,即使您确实使用蓝色 UIView 作为指南,如果您的约束是正确的,您应该能够正确地做到这一点。我刚刚尝试过,但无法重现该问题:我的蓝色视图出现在我的单元格中,与它出现在 Interface Builder 中的位置相同。

  • 即时解决方案是不要在从中绘制 UITableViewCell 的 nib 中使用 Autolayout - 即在文件检查器中取消选中此 nib 的“使用自动布局”。因此,您将使用老式的弹簧和支柱(自动调整大小)来定位子视图。

在此处输入图像描述

于 2013-04-25T16:59:36.453 回答