我正在创建一个自定义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