正在UITabBarItem标题中剪裁的自定义字体



在UITabBarItem中使用某些自定义字体时,我看到一些字符在底部被剪切。我也在UIButton上看到过这种情况,但找到了一个修复方法,即对UIButton进行子类化并覆盖以下方法:

UI按钮标题上的自定义字体剪切在单词的顶部

-(void)layoutSubviews
{
    [super layoutSubviews];
    CGRect frame = self.titleLabel.frame;
    frame.size.height = self.bounds.size.height;
    frame.origin.y = self.titleEdgeInsets.top;
    self.titleLabel.frame = frame;
}

遗憾的是,layoutSubviews无法在UITabBarItem上覆盖。有人经历过这个问题并找到了解决办法吗?

您可以使用属性字典(setTitleTextAttributes:forState:,继承自UIBarItem)自定义标题(包括其颜色),还可以使用setTitlePositionAdjustment(_:forBarMetrics:)属性调整标题的位置。

这基本上是字体垂直间距的问题。您必须使用字体的属性来计算总字体高度,因为每个字体的属性都不同。您可以从苹果文档中获得字体高度的想法。字体度量

最新更新