在我的 iPhone 应用程序中,我为所有 UILabel 设置了自定义字体(更准确地说,我将 UILabel 子类化,覆盖了一个方法,在该方法中设置自定义字体,然后将 IB 中的所有标签设置为该自定义类)。现在的问题是,所有文本都被渲染得太远低于预期的基线,所以像'y'和'g'这样的字母在下面被切断了。我在这里读到过类似的问题:
然后,我尝试按照这些解决方案中的描述摆弄上升器(最初设置为 990)。将其设置为 500 左右会产生良好的效果,但不久之后,我注意到多行文本中的行相互混合,这当然是不可接受的。在 UITextViews 上,字体似乎在初始基线上渲染得很好。
有没有解决这个问题的实用方法?当然,我可以为多行或单行文本保留几种具有不同升序的字体,但这是一个相当混乱的解决方案。
PS:字体以otf格式提供,虽然我尝试将其转换为ttf,导致相同的结果。