iOS自定义字体“浮动”太高

时间:2013-05-24 20:42:20

标签: ios fonts uibutton uibarbuttonitem uifont

我正在创建一个自定义的UIBarButtonItem,如下所示:

    UIImage *originalImage = [UIImage imageNamed:@"button"];
    UIImage *buttonImage = [originalImage stretchableImageWithLeftCapWidth:10 topCapHeight:5];

    UIButton *toolbarB = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 65, 29)];
    [toolbarB setTitle:title forState:UIControlStateNormal];
    [toolbarB.titleLabel setFont:[UIFont fontWithName:kLatoBold size:17.0f]];
    [toolbarB setBackgroundImage:buttonImage forState:UIControlStateNormal];
    [toolbarB addTarget:target action:selector forControlEvents:UIControlEventTouchUpInside];

    UIBarButtonItem *barButtonItem = [[UIBarButtonItem alloc] initWithCustomView:toolbarB];

根据我使用的自定义字体,将我的UIBarButtonItem插入到控制器的navigationItem后,我得到以下结果之一。

为什么第二个结果中的按钮文本“浮动”高于它应该的值?第一个按钮看起来很棒,但第二个按钮以不自然的方式定位文本......这可能是我的字体有问题吗?

正确显示按钮文字

enter image description here

恼人的浮动按钮文字太高了!

enter image description here

1 个答案:

答案 0 :(得分:1)

对于某些字体会发生这种情况,我不知道为什么,但我建议您使用UIEdgeInsets将文字向下推。我想你无法修复你的字体,所以;

以下是类似解决方案的链接; Aligning text and image on UIButton with imageEdgeInsets and titleEdgeInsets