在 Xcode 6 中启用自动布局时标签未正确调整文本

Label not adjusting text correctly with Auto Layout enabled in Xcode 6

我正在使用 Storyboard 为应用程序 UI 布局,我想使用自动布局。我通常能够使用自动布局解决我自己的问题,但我在这里碰到了一个标签,它不想 re-size 正确地显示或根本不显示任何文本。

模拟器截图如下:

在属性检查器中,我将行设置为 0,将换行设置为自动换行:

我已经尝试 "Resetting to Suggested Constraints" 整个 UITableViewController:

我也尝试过自己选择标签并固定宽度和高度,以及添加任何缺失的约束:

但是,它只显示地址的前四个字符:

地址标签的 table 单元格已正确调整为 88 点,因为我实施了此方法,但仍有明显的问题:

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
    if (indexPath.section == 0 && indexPath.row == 0) {
        return 88;
    }
    else if (indexPath.section == 2 && indexPath.row == 2) {
        return 88;
    }
    else {
        return 44;
    }
  }

后一部分在正确的轨道上,但您设置了 "greater than or equal to" 约束并且自动布局选择使用 "equal to" 而不是使其更宽。

你需要弄清楚原因。我首先在标签 "Address" 上设置一个固定宽度的约束,然后在地址字段的左侧设置一个约束,使其等于地址标签的右侧,同时将它们固定在各自的容器,使它们附着在两侧。这可能会解决它。

对于您看不到任何内容的早期部分,很可能该字段完全显示在其父容器之外,该容器正在裁剪到边界。橙色虚线通常在界面构建器预览中指示此位置,这表明约束设置不足。

我已经解决了,但是我不知道这是不是最好的解决方案。

我尝试了几乎所有方法,试图让 table 单元格中的两个标签很好地协同工作。 最后,我希望根据需要扩展详细信息标签框架以填充地址。

我最终选择了 Storyboard 上的 Address 标签和 Detail 标签,并在当前视图中选择默认 "Reset to Suggested Constraints"。

然后我在尺寸检查器中为细节视图设置了一个明确的宽度:

与此方法一起使用似乎可以正常工作:

   - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
  {
    if (indexPath.section == 0 && indexPath.row == 0) {
      return 88;
  }
    else if (indexPath.section == 2 && indexPath.row == 2) {
      return 88;
  }
    else {
      return 44;
  }
}