我正在创建一个自定义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后,将得到以下结果之一。

为什么第二个结果中的按钮文本“浮动”比预期的要高?第一个按钮看起来不错,但是第二个按钮以不自然的方式放置文本...我的字体可能有问题吗?

按钮文本正确显示

令人讨厌的浮动按钮文本太高!

最佳答案

某些字体会发生这种情况,我不知道为什么,但是我建议您使用UIEdgeInsets将文本压低一点。我猜您无法修复字体,因此;

这是类似解决方案的链接。 Aligning text and image on UIButton with imageEdgeInsets and titleEdgeInsets

10-08 17:25