在 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;
}
}
我正在使用 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;
}
}