Swift 自定义字体剪辑的顶部

Posted

技术标签:

【中文标题】Swift 自定义字体剪辑的顶部【英文标题】:top of Swift custom font clipping 【发布时间】:2021-03-12 13:56:54 【问题描述】:

我的应用程序中有一个自定义字体,我将其正确添加到应用程序中,我设置了目标成员资格,将其添加到 plist 文件等,一切都很好,我可以使用该字体,但顶部一些字符被剪掉了:

如你所见,它只发生在第一行,而且只发生在这些字符上,其余的都可以。

当我在画布中选择它时,很明显顶部被剪裁了,但调整框架并不会改变这一点,而且大多数时候这不是一个选项。

有什么解决办法吗?有没有其他人见过这个问题?这个是Swift还是SwiftUI相关,还是字体有问题?

代码本身超级简单:

import SwiftUI

    struct ContentView: View 
        
        var body: some View 
            
            Text("CSOQG-098632 CSOQG-098632")
                .font(.custom("Lausanne-500", size: 44))
                .foregroundColor(.gray)
                
        
    

【问题讨论】:

你会为此展示你的代码吗? 刚刚编辑了原始问题 如果您控制字体,请确保字体规格正确。 Text 无法处理显着超出其标称指标的字体(不过,我还没有确定它使用的具体指标)。我已经为此开设了两个 FB(FB7545192 "Text clips Zapfino" 和 FB7497447 "Text clipsextreme diacritics ("zalgo")"),但到目前为止,Apple 已经忽略了我的报告一年。 在您的情况下,剪辑是在大写高度上方绘制的字形上(这对于顶部有曲线的字形来说是完全正常的)。我的猜测是你的上升等于你的上限高度,你需要增加你的上升以匹配你实际最高的字形。 【参考方案1】:

看起来像字体基线问题。作为解决方法,您可以像这样补偿它

Text("CSOQG-098632 CSOQG-098632")
    .font(.custom("Lausanne-500", size: 44))
    .baselineOffset(-10)                      // << tune here !!
    .foregroundColor(.gray)

【讨论】:

谢谢,这解决了它,幸运的是只需要一个很小的偏移量!

以上是关于Swift 自定义字体剪辑的顶部的主要内容,如果未能解决你的问题,请参考以下文章

在 Xcode 6 中使用自定义字体 - Swift [重复]

swift 使用自定义字体

自定义 UITabBarItem 的文本颜色和字体导致 swift 出现奇怪的结果

swift 在整个应用程序中设置自定义字体的全局外观。

自定义字体未显示在字体系列列表中

是否可以为NSString设置自定义字体和大小?