我正在尝试使用自定义字体创建一个 UIButton
。我设置了 titleLabel 的
字体,然后设置了我的文本,然后调用了 sizeToFit
。不幸的是,它将高度调整为太小的几个像素,并削掉了每个大写字母的一部分。按钮的 titleLabel
的高度小于按钮本身的大小,但在调用 sizeToFit
后手动设置其框架对我没有任何作用。我从一个普通的 UILabel
中注意到了相同的行为,除了当我手动将框架设置为我的 UIButton
的大小时,文本显示完美。当我调用 sizeToFit
时,UILabel
变得与 UIButton 的
titleLabel
大小相同,并且它还切断了我的大写字母的顶部。此外,由于这是一个 SpriteKit SKView
我要添加这些按钮,我还创建了一个 SKLabelNode
以查看它如何处理自动调整字体大小,并且它做得很完美作业,它的高度比我的 UILabel
和我的 UIButton 的 titleLabel
高度高几个像素。这是一张 imgur 相册,可以直观地展示它,它在 S 和小写字母 i 的点上很明显:
有没有人知道是什么导致了这种情况发生?
最佳答案
如果有人遇到同样的问题并遇到这个问题,我想出了一个简单的解决方案,方法是将 UIButton 子类化。然后,我只是修改了 layoutSubviews,使 titleLabel 边界等于按钮的 subview ,并且它不再切断字体的顶部。不确定这是否是最佳方式,但它确实有效。
- (void)layoutSubviews
{
[super layoutSubviews];
self.titleLabel.bounds = self.bounds;
}
关于ios - 调用 sizeToFit 时,UIButton 无法使用自定义字体正确调整高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20978640/