2013-04-25 62 views
0

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

enter image description here

这里是结果:

enter image description here

我动态注入步进控制,但你可以看到的UIView一直延伸到单元格的结束。我试过pin宽度然后它完全混淆了一切,甚至不显示UIView。

这里是约束的截图:

enter image description here

+0

如果步进应该完全地覆盖蓝色的UIView,为什么你需要蓝色的UIView呢? – matt 2013-04-25 16:56:43

+0

它不得不覆盖蓝色的UIView和我有蓝色的UIView的原因是我动态注入条件的步进。正如你所看到的蓝色UIView向右扩展。我怎样才能使它停止扩大和击中细胞边界。 – 2013-04-25 16:59:21

+0

但这不是理由;你不需要蓝色的UIView为了注入步进器!只需注入步进器,不用UIView。问题是你不明白如何动态地将步进器添加到单元格的“contentView”中? – matt 2013-04-25 17:00:39

回答

0

好吧,让我在这里得出一些区别。

  • 琐碎的方式,这是你总是有在细胞步进(没有的UIView)。对于那些我们不应该看到步进器的单元,您将其hidden设置为YES;对于我们应该看到它的那些单元,您将其hidden设置为NO。那是我会做的。

  • 程序员的方式做,这是你有没有蓝色的UIView在你的所有。您可以在代码中添加步进器,并且您还可以在代码中提供它的约束来定位它。你说:

    所以我没有硬编码的坐标

    但在代码中添加约束是“硬编码”的坐标。有了约束条件,你可以根据超级视图中的插入来从概念上描述的位置,并且随着超级视图的大小调整,您仍然可以正确定位。所以没有哲学反对加入步进器及其约束条件,只是懒惰不这样做。

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

  • 即时的解决办法是不使用自动布局从其中一个UITableViewCell绘制笔尖 - 即取消选中“使用自动版式”中的文件检查此笔尖。因此,您将使用老式的弹簧和支柱(自动调整)来定位子视图。

enter image description here

+0

无法取消选中自动布局! – 2013-04-25 17:02:32

+0

为什么不是?我可以。 – matt 2013-04-25 17:35:40