ios - 调用 sizeToFit 时,UIButton 无法使用自定义字体正确调整高度

标签 ios uibutton uilabel

我正在尝试使用自定义字体创建一个 UIButton。我设置了 titleLabel 的 字体,然后设置了我的文本,然后调用了 sizeToFit。不幸的是,它将高度调整为太小的几个像素,并削掉了每个大写字母的一部分。按钮的 titleLabel 的高度小于按钮本身的大小,但在调用 sizeToFit 后手动设置其框架对我没有任何作用。我从一个普通的 UILabel 中注意到了相同的行为,除了当我手动将框架设置为我的 UIButton 的大小时,文本显示完美。当我调用 sizeToFit 时,UILabel 变得与 UIButton 的 titleLabel 大小相同,并且它还切断了我的大写字母的顶部。此外,由于这是一个 SpriteKit SKView 我要添加这些按钮,我还创建了一个 SKLabelNode 以查看它如何处理自动调整字体大小,并且它做得很完美作业,它的高度比我的 UILabel 和我的 UIButton 的 titleLabel 高度高几个像素。这是一张 imgur 相册,可以直观地展示它,它在 S 和小写字母 i 的点上很明显:

http://imgur.com/a/fy5st

有没有人知道是什么导致了这种情况发生?

最佳答案

如果有人遇到同样的问题并遇到这个问题,我想出了一个简单的解决方案,方法是将 UIButton 子类化。然后,我只是修改了 layoutSubviews,使 titleLabel 边界等于按钮的 subview ,并且它不再切断字体的顶部。不确定这是否是最佳方式,但它确实有效。

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

关于ios - 调用 sizeToFit 时,UIButton 无法使用自定义字体正确调整高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20978640/

相关文章:

ios - 在 iPad 中使用 NavigationController 关闭 ModalViewController 当在 View 外点击时

iOS:使用 AFNetworking 解析 JSON 并检索特定信息?

ios - NSMutableString的appendFormat不能追加多个项

ios - Swift/XCODE - 无法在 UIButton 上快速按下(触摸)

iphone - 如何将文本从文本字段发送到另一个 View Controller

ios - 访问自定义 View

ios - 重用其他方法文件中的变量

ios - 我可以发布包含半透明项目的应用程序吗?

ios - UILabel 行间距

iphone - 使用手势缩放 UIlabel 文本