iOS中的嵌入字体:为什么它们没有在y轴上正确居中?

时间:2011-03-15 23:10:35

标签: iphone objective-c ios fonts

我在我的iOS应用程序中嵌入了几个字体,发现它们在标签和按钮中没有正确居中,它们在y轴上太高,有没有解决方案?起初我以为它只是一个我正在使用的廉价字体文件,但后来我用Adobe字体试了一下(只是为了看看)它仍然有问题。

4 个答案:

答案 0 :(得分:6)

我朋友指出的(a?)解决方案是使用按钮的contentEdgeInsets属性,我将其设置为:

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

将文本向下压缩10个像素,现在文本居中。活泉。

答案 1 :(得分:0)

我太挣扎了。

根据具体情况,我使用不同的解决方案:

  • 当有问题的元素支持时使用insets
  • 使用视图替换相关标签,该视图将另一个标签作为其子视图。然后我将新标签移动到它的超视图中,直到它居中。这适用于标题栏等。

我还没有尝试过的是继承UILabel(甚至更好:在其上写一个类别)来包含修复。

也许我也会写错误报告。

我会告诉你这个!

答案 2 :(得分:0)

您应该注意到UIControl个类有一个属性contentVerticalAlignment(以及contentHorizontalAlignment)。

答案 3 :(得分:0)

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

要修复它,您可以使用Font Creator等工具更正字体位置。在我的情况下,我们必须用-200来纠正它。通过这种方式,您可以像平常一样使用UILabel,无需使用子类或额外类别。

Font Creator下载链接:http://www.high-logic.com/fontcreator.html