ios - 为什么自定义字体会移动文本(更改垂直对齐方式)?

标签 ios objective-c ios5 uilabel

<分区>

我有这段代码,用一些文本和默认字体创建简单的 UILabel

        self.reviewCountLabel = [[UILabel alloc] initWithFrame:someFrame];
        self.reviewCountLabel.text = @"1231 REVIEWS";
        self.reviewCountLabel.textAlignment = NSTextAlignmentRight;
        self.reviewCountLabel.backgroundColor = [UIColor lightGrayColor];
//        self.reviewCountLabel.font = [UIFont fontWithName:kSTGFontAvantGardeBold size:18];
        [self addSubview:self.reviewCountLabel];

在屏幕上我得到这个:

enter image description here

但是如果我取消注释添加自定义字体的代码,我会得到这个:

enter image description here

有人能解释一下为什么我要垂直对齐到顶部吗? (或帮助解决)

最佳答案

它可能没有对齐到顶部,但新字体的几何形状(上升、基线等)与系统字体完全不同。在这方面,并非所有字体都像其他字体一样干净。

您可以使用 Apple's Font Tool Suite 调整几何形状,特别是 ftxdumperfuser 命令。 Here is an older SO post并非常详细地描述了如何使用该工具来解决您的问题。

关于ios - 为什么自定义字体会移动文本(更改垂直对齐方式)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15479454/

相关文章:

ios - iPhone日历导航 Controller

iphone - 如何从 NSURL 中的 XML 文件获取图像以及数据作为 iPhone 中的异步下载

iphone - Objective-C的协议(protocol)和类别可以继承吗?

iphone - 超过五秒的 iphone 声音

ios - 如何找出当前 iPhone 屏幕的大小来动态设置 itemSize?

ios - 照片的JPEG NSData转UIImage转JPEG大小完全不同

iphone - 拉伸(stretch) UIImage 同时保留角点

iphone - UISegmentedControl 不检测 iOS5 中的段更改

iOS KeychainItemWrapper 未更新

c++ - iOS - Xcode - OpenCV - findContours 错误