6

我有一个UIButton使用自定义字体的子类。问题是大写字母不显示分音符。

下面是具有和不具有自定义字体的相同按钮示例的图像。我将标题的背景颜色设置为红色以查看发生了什么。

没有自定义字体

没有自定义字体

使用自定义字体

使用自定义字体

我的UIButton子类覆盖awakeFromNib

- (void)awakeFromNib
{
    [super awakeFromNib];
    UIFont *font = [UIFont fontWithName:@"TitilliumText22L-Bold" size:self.titleLabel.font.pointSize];
    self.titleLabel.font = font;
}

谁能告诉我该怎么做才能在大写字母上显示分音符?

谢谢。

4

5 回答 5

4

我通过按照 Bob https://stackoverflow.com/a/8314197/617787分享的问题的答案解决了这个问题

唯一要注意此解决方案(更改字体文件的“上升”)是使用此修改后字体的多行 UILabel 上的行之间的空间也会发生变化,因此您可以使用 NSAttributedString 来修改它在每种情况下基础。

于 2013-06-26T10:59:07.730 回答
4

简单和最佳的解决方案。

  1. 选择界面中的按钮
  2. 在属性检查器中,更改垂直对齐方式,如图所示。

于 2020-09-24T13:57:55.060 回答
1

我已经用土耳其字符对此做了一些测试,看看结果:

3 个按钮和 1 个带有 NeoSansPro 字体和大写 TR 字符的 UILabel

  1. UILabel 正确显示大写字母。
  2. 带有 helvetica 字体的 UIButton 正确显示字符(第三个按钮),但 NeoSansPro 系列的所有成员都会出现问题。
  3. 问题仅出现在标题标签的顶行(按钮 2)

解决方案:

实际上是一个黑客,使用风险自负。我宁愿推荐上面的follwign Javier的答案

  1. 设置标题标签的行数:0
  2. 设置标题“\nBUTTON TITLE”而不是“BUTTON TITLE”
  3. 在 IB 或代码中,使用内容和标题对齐,直到标题正确显示。如果你想让它在中间,你应该把标题向上推一点
于 2013-12-12T09:35:29.623 回答
0

我有一个类似的问题,分音符在标题标签上被切断了。我创建了一个 UIButton 子类并使用此代码来解决问题:

-(void)layoutSubviews
{
    [super layoutSubviews];

    CGRect frame = self.titleLabel.frame;
    frame.size.height = self.bounds.size.height;
    frame.origin.y = self.titleEdgeInsets.top;
    self.titleLabel.frame = frame;
}
于 2014-01-22T10:15:33.140 回答
0

似乎文本被剪切了,尝试减小字体大小或更改 titleLable 的框架(UIButton 的属性)

于 2013-06-12T11:20:17.440 回答