1

我的应用程序中有表格视图。它在故事板内部,并被配置为具有原型单元。首先,我使用 UITableViewCell 的 textLabel 属性来设置文本,并在 tableView:cellForRowAtIndexPath: 中更改了它的字体,

cell.textLabel.font = [UIFont fontWithName:@"Calibre-Light" size:18];

当我更改字体时,文本已经不是垂直居中的,请查看屏幕截图。 在此处输入图像描述 在此处输入图像描述

第一张图片是自定义字体,第二张图片是默认字体。

我试图在原型单元格内创建标签并定义约束以使其垂直居中对齐。

在此处输入图像描述

但这也没有帮助,结果与第一个屏幕截图相同。为什么我会得到这种行为?

感谢您的回答!

4

3 回答 3

1

经过几天的折磨,我终于找到了解决方法。首先让我不要,我使用的字体是问题的根源。当你垂直对齐它时它不会对齐,可能是因为它在底部有某种边距,所以解决可能问题的唯一方法是手动将标签定位在视图内,这样结果位置会导致 UILabel UITableViewCell 内部出现垂直对齐。但是我再次尝试在 Interface Builder 中手动将标签移低但再次没有成功。这是右下角的界面构建器原型单元格的图像以及该定位在背景中的结果

在此处输入图像描述

请注意,标签没有移动,而是从顶部裁剪。再次沮丧......为什么它不动???如果我手动将其放置在界面生成器中。最后我只是想可能是标签尺寸不正确?所以在 tableView:cellForRowAtIndexPath: 里面我只是调用了 [textLabel sizeToFit],一切正常。

因此,作为结论,请注意,有时自定义字体可能不会按照您想要的方式运行,因为它们的内部实现。

于 2013-07-18T05:26:07.350 回答
1

这是修复自定义字体的链接

http://www.andyyardley.com/2012/04/24/custom-ios-fonts-and-how-to-fix-the-vertical-position-problem/

变更摘要

  • 下载 Apple 字体工具套件
  • 终端:ftxdumperfuser -t hhea -A d font.ttf
  • 在目录中创建的 XML 文件
  • 使用文本编辑器打开 XML 并调整上行、下行的设置
  • 终端:ftxdumperfuser -t hhea -A f font.ttf
  • 将自定义字体添加到您的项目中(不要忘记 plist 项)
于 2013-08-22T20:31:45.557 回答
0

您是否尝试使标签从 cell.contentView 的顶部边缘延伸到底部边缘?这是非自定义单元格的默认设置。根据我的经验,这总是按预期工作。

于 2013-07-16T15:07:05.627 回答