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 [重复]