0

我目前正在开发一个 iPad 应用程序,并希望将自定义字体应用于特定屏幕上的 UIButtons。我注意到其他屏幕的类似问题,即某些(看似随机的)UIButtons 上的文本消失了。在这种情况下,自定义字体被应用到一些按钮而不是其他按钮,似乎没有任何关于哪些按钮工作和哪些不工作的模式。我在下面附上了一个屏幕截图,试图让您了解我的意思。

正如我所提到的,在其他一些屏幕上,我注意到一些按钮上的文本完全消失了,不得不用带有文本的图像来替换它们。

在此处输入图像描述

所有按钮都是在 Interface Builder 中创建的。他们使用属性文本来允许多行和居中对齐。任何帮助将非常感激。

编辑 - 我的代码如下:

for (UIView *sub in view.subviews) {
    UIButton *btn = (UIButton *) sub;
    UILabel *lbl = [btn titleLabel];
    [lbl setFont: myFont size: mySize];
}
4

2 回答 2

3

要使用属性,请确保将 IB 项目设置为使用属性文本,而不是纯文本。

要设置使用的属性标题NSButton

- (NSAttributedString *)attributedTitleForState:(UIControlState)state

用途NSLabel

@property(nonatomic,copy) NSAttributedString *attributedText

当然,您可能不需要属性文本,您所做的只是设置字体和对齐方式。

对于多行文本集:

@property(nonatomic) NSInteger numberOfLines

作为适当的。

于 2013-03-31T16:35:52.850 回答
2

从评论:

您可以在不使用 NSAttributedStrings 的情况下在 UIButtons 中实现居中和多行标题标签,方法是将以下几行添加到您的 for 循环中:

lbl.textAlignment = UITextAlignmentCenter; 
lbl.numberOfLines = 0;
于 2013-03-31T19:00:01.877 回答