iOS中的embedded字体:为什么它们不能正确居中在y轴上?

我已经在我的iOS应用程序中embedded了一些字体,并发现它们没有正确地居中在标签和button中,它们在y轴上太高,有没有解决scheme? 起初,我以为这只是一个廉价的字体文件,我用它,然后我试着用Adobe字体(只是为了看),它仍然有问题。

我的一个朋友指出的(a?)解决scheme是使用button的contentEdgeInsets属性,我将它设置为:

myButton.contentEdgeInsets = UIEdgeInsetsMake(10, 0, 0, 0); 

将文字向下碰撞10个像素,现在文字居中。 活泉。

我也为此而挣扎。

根据情况,我使用不同的解决scheme:

  • 当有问题的元素支持它时使用插入
  • 用一个视图replace标签,该视图将另一个标签作为其子视图。 然后我把它的超级视图中的新标签,直到它居中。 这适用于标题栏等。

我还没有尝试过的是inheritanceUILabel(甚至更好:写一个类别)来包含修复。

也许我会写一个错误报告。

我会告诉你的!

你应该注意到UIControl类有一个属性contentVerticalAlignment (以及contentHorizo​​ntalAlignment )。

居中问题只出现在UILabels中。 UITextViews正常工作。 UIButton里面有一个UILabel,所以也有同样的问题。

要解决这个问题,你可以使用Font Creator这样的工具来修正你的字体位置。 在我的情况下,我们不得不用-200来纠正它。 这样,您可以像平常一样使用UILabel,不需要子类或额外的类别。

字体创build者下载链接: http : //www.high-logic.com/fontcreator.html