调用sizeToFit时,UIButton不会使用自定义字体正确调整高度

时间:2014-01-07 18:03:29

标签: ios uibutton uilabel

我正在尝试使用自定义字体创建UIButton。我设置titleLabel's字体,然后设置我的文字,然后拨打sizeToFit。不幸的是,它将高度调整为太小的几个像素,并削减每个大写字母的一部分。按钮titleLabel的高度小于按钮本身的大小,但在调用sizeToFit后手动设置其框架对我没有任何作用。我注意到普通UILabel中的相同行为,除非我手动将帧设置为UIButton的大小,文本显示完美。当我致电sizeToFit时,UILabelUIButton's titleLabel的尺寸相同,并且它也切断了我的大写字母的顶部。另外,由于这是SpriteKit SKView我正在添加这些按钮,我还创建了SKLabelNode以查看它如何处理自动调整字体大小,并且它做得很好,高度为几个像素高于UILabel和我的UIButton titleLabel高度的像素。这是一张可视化的imgur专辑,它在S和小写字母的点缀上显而易见:

http://imgur.com/a/fy5st

有没有人有任何想法导致这种情况发生?

1 个答案:

答案 0 :(得分:2)

如果有人遇到同样的问题并遇到这个问题,我只是通过继承UIButton来找出解决方案。然后,我刚刚修改了layoutSubviews,使得titleLabel边界等于按钮的子视图,并且它不再切断字体的顶部。不确定这是否是最好的方式,但它确实有效。

- (void)layoutSubviews
{
    [super layoutSubviews];
    self.titleLabel.bounds = self.bounds;
}