我正在尝试使用自定义字体创建UIButton
。我设置了titleLabel's
字体,然后设置了文本,然后调用sizeToFit
。不幸的是,它将高度调整为太小的几个像素,并剃掉了每个大写字母的一部分。按钮的titleLabel
的高度比按钮本身的大小小,但在调用sizeToFit
后手动设置其边框对我没有任何帮助。我注意到普通UILabel
也有同样的行为,只是当我手动将边框设置为UIButton
的大小时,文本显示得很完美。当我调用sizeToFit
时,UILabel
的大小与UIButton's
的titleLabel
的大小相同,它还切掉了我的大写字母的顶部。此外,由于这是一个我添加这些按钮的SpriteKit SKView
,我还创建了一个SKLabelNode
,看看它是如何自动调整字体大小的,它做得很好,它的高度比我的UILabel
和UIButton的titleLabel
的高度都高出几个像素。这是一张imgur相册,可以直观地显示它,它在s和小写i:的点号上很明显
https://i.stack.imgur.com/47YaU.jpg
有人知道发生这种事的原因吗?
如果有人遇到同样的问题,我只需将UIButton子类化就可以找到解决方案。然后,我只是修改了layoutSubviews,使title标签边界等于按钮的子视图,并且它不再截断字体的顶部。不确定这是否是最好的方法,但它有效。
- (void)layoutSubviews
{
[super layoutSubviews];
self.titleLabel.bounds = self.bounds;
}