裁剪的UIButton标题

Jes*_*ock 6 iphone uibutton uilabel ios

我使用自定义字体作为UIButton的标题.它有效,除了这个特定的字体,第一个字符的一部分被剪裁.例如:

在此输入图像描述

我尝试设置contentEdgeInsets和titleEdgeInsets,似乎无法修复它.我也尝试将button.titleLabel.clipsToBounds属性设置为NO;

任何建议将不胜感激.

sam*_*sam 10

尽管Jeshua的解决方案运行良好,但在我看来并不是最佳选择.我宁愿建议继承UIButton并覆盖它的layoutSubviews方法.

-(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;
}
Run Code Online (Sandbox Code Playgroud)


Jes*_*ock 8

所以我最终将UIButton标题设置为nil并将我自己的UILabel添加为UIButton的子视图.我将UILabel框架设置为与按钮相同的大小,并将其设置为居中.

我确信这不是最优雅的解决方案,但它完成了工作.

  • 真的很糟糕,这是唯一的解决方案.发生这种情况的原因是字体设计者故意将字母的边界编码为比它们实际上更少,以便它们嵌套.这对于斜体和草书字体尤为重要.我希望Apple在计算UIButton标签的宽度时不会那么"精确",或者至少允许我们自己更改它.我正在提交错误报告,你也应该这样做. (2认同)