【问题标题】:UITableViewCell textLabel is not vertically aligned when I change font更改字体时,UITableViewCell textLabel 未垂直对齐
【发布时间】:2013-07-16 14:27:34
【问题描述】:

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

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

当我更改字体时,文本已经不是垂直居中的,请查看屏幕截图。

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

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

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

感谢您的回答!

【问题讨论】:

    标签: ios uitableview autolayout


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

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

      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 项)

      【讨论】:

        【解决方案3】:

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

        【讨论】:

        • 我会试试的。只是不明白为什么再次更改默认 textLabel 的字体文本不是居中对齐。
        • 这可能是因为字体之间最大大小字母的中心不一样。
        • 我想你必须调整一下。 IE。减少上边距,直到您满意为止。自定义字体 --> 自定义格式。
        • 我也试过了,没有成功。找到解决方案后,我会尽快发布答案。谢谢蒙迪!!
        • 等等 - 这不可能不起作用。您还可以将标签向下移动,直到文本具有所需的位置。
        猜你喜欢
        • 1970-01-01
        • 2012-01-02
        • 2014-08-18
        • 2014-03-29
        • 2015-07-16
        • 1970-01-01
        • 2010-12-23
        • 2023-03-30
        • 2011-01-17
        相关资源
        最近更新 更多