Autolayout限制和iPhone 6/6 plus

时间:2014-11-22 01:21:00

标签: ios iphone uitableview interface-builder iphone-6-plus

我是iOS开发的新手,我遇到了AutoLayout限制问题。我试图" pin" TableViewCell右侧的标签。它在iPhone 4s-5s模拟器中工作正常,但在iPhone 6(plus)模拟器中却没有。

标签上的约束是容器边距的顶部空间,以及容器边距的前导空间,如下所示:

enter image description here

在4s / 5 / 5s模拟器中,它看起来像我期望的那样,但是6加模拟器,我明白了:

enter image description here

6存在同样的问题,但程度较小。

如果我将前导空格换成保证金以便将尾随空格转换为保证金,则标签会掉落,每个模拟器中都会留下一个空白单元格。

但是,如果我将完全相同的布局约束添加到普通视图,则标签会很好地对齐。这只发生在自定义TableViewCell中。

宽度和高度都设置为size类中的任何一个。如果我扩展单元格的宽度,将标签向右移动,然后将单元格缩回,使标签偏离侧面,然后调整约束条件,标签将至少接近6+的右侧。问题在于,在任何较小的情况下,它都会从侧面掉下来。

如何在TableViewCell中的所有设备中将标签对齐到右边,或者这只是模拟器中的问题?我没有完全测试它的6+。

2 个答案:

答案 0 :(得分:3)

在您的情况下,要将对象固定到视图的右侧,您需要的唯一约束是

  • 顶部空间到容器
  • 尾随空间到容器
  • 固定宽度
  • 固定高度

如果标签的宽度是可变的,您可能希望:

  • 右对齐标签
  • 删除固定宽度约束并向容器< =约束添加前导空格或将其固定到可更改宽度的同级视图。

如果在您的示例中将前导空格更改为尾随空格约束后您看到标签消失,我将确保您的父表视图约束正确并且表视图不会在屏幕边缘流出。

答案 1 :(得分:1)

  

如果我将前导空格换成保证金以便尾随空格到保证金,则标签会掉落,每个模拟器中都会留下一个空白单元格

不是这样。删除前导空格约束。从标签的右边缘到contentView的右边缘创建一个尾随空间约束 - 不是它的边距,而是视图本身。这就是你所需要的一切。