裁剪的UIButton标题

时间:2012-04-17 22:19:22

标签: iphone ios uibutton uilabel

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

enter image description here

我尝试设置contentEdgeInsets和titleEdgeInsets,似乎无法将其剪切掉。我也尝试将button.titleLabel.clipsToBounds属性设置为NO;

任何建议都将不胜感激。

4 个答案:

答案 0 :(得分: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;
}

答案 1 :(得分:8)

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

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

答案 2 :(得分:1)

在我看来,你的内容很有趣。如果无法直接访问标签的框架,请使用[button setContentHorizontalAlignment:UIControlContentHorizontalAlignmentCenter];尝试修复水平对齐问题。

答案 3 :(得分:1)

以上答案的Swift代码:

override func layoutSubviews() {
    super.layoutSubviews()
    titleLabel?.frame = CGRect(x: bounds.origin.x, y: titleEdgeInsets.top, width: frame.width, height: bounds.size.height)
}