调用 sizeToFit 时,UIButton 无法使用自定义字体正确调整高度
Posted
技术标签:
【中文标题】调用 sizeToFit 时,UIButton 无法使用自定义字体正确调整高度【英文标题】:UIButton does not resize height correctly with custom font when sizeToFit is called 【发布时间】:2014-01-07 18:03:28 【问题描述】:我正在尝试使用自定义字体创建UIButton
。我设置了titleLabel's
字体,然后设置了我的文本,然后调用sizeToFit
。不幸的是,它将高度调整为太小了几个像素,并刮掉了每个大写字母的一部分。按钮的titleLabel
的高度小于按钮本身的大小,但在调用sizeToFit
后手动设置其框架对我没有任何作用。我从普通的UILabel
中注意到了相同的行为,除了当我手动将框架设置为UIButton
的大小时,文本显示完美。当我调用sizeToFit
时,UILabel
的大小与UIButton's
titleLabel
的大小相同,并且它还切断了我的大写字母的顶部。此外,由于这是一个 SpriteKit SKView
我添加了这些按钮,我还创建了一个 SKLabelNode
来查看它如何处理自动调整字体大小,它做得非常完美,它的高度比两者都高几个像素我的 UILabel
和我的 UIButton 的 titleLabel
高度。这是一张 imgur 相册,可以直观地展示它,在 S 和小写 i 的点上很明显:
http://imgur.com/a/fy5st
有没有人知道是什么导致了这种情况发生?
【问题讨论】:
【参考方案1】:如果有人遇到同样的问题并遇到此问题,我只需通过子类化 UIButton 找到解决方案。然后,我只是修改了 layoutSubviews 以便 titleLabel 边界等于按钮的子视图,并且它不再切断字体的顶部。不确定这是否是最好的方法,但它确实有效。
- (void)layoutSubviews
[super layoutSubviews];
self.titleLabel.bounds = self.bounds;
【讨论】:
以上是关于调用 sizeToFit 时,UIButton 无法使用自定义字体正确调整高度的主要内容,如果未能解决你的问题,请参考以下文章