7

我有一个按钮,我使用自定义 UIFont 来显示文本。字体正确加载并正确应用于按钮标题。我的问题是我似乎无法更改字体大小:

UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[button addTarget:self action:@selector(loginButtonClicked:) forControlEvents:UIControlEventTouchUpInside];
[button setTitle:@"Login" forState:UIControlStateNormal];
button.frame = CGRectMake(63.0, 200.0, 194.0, 60.0);
button.titleLabel.font = [UIFont fontWithName:@"My-Font" size:8.0f];
[self.view addSubview:button];

无论我输入什么字体大小,我都会得到一些默认大小。另一方面,如果我这样做:

button.titleLabel.font = [UIFont systemFontOfSize:32.0f];

我得到了 32 号字体,但是,当然,我没有得到我的自定义字体。那么,如何设置自定义字体的大小?

(我使用 Xcode 4.6.3)

4

5 回答 5

3

似乎您的 UIFont 对象没有正确创建并且正在返回nil

这是我找到的关于自定义字体的最佳教程。祝你好运 ;)

http://refactr.com/blog/2012/09/ios-tips-custom-fonts/存档版本

于 2013-07-06T03:28:11.207 回答
2

做这个:

    NSMutableDictionary *fontsByFamilyName = [NSMutableDictionary dictionary];
    NSArray *sortDescriptors = [NSArray arrayWithObject:[[[NSSortDescriptor alloc] initWithKey:@"self" ascending:YES] autorelease]];

    NSArray *familyNames = [[UIFont familyNames] sortedArrayUsingDescriptors:sortDescriptors];
    for (NSString *aFamilyName in familyNames) {
        NSArray *fontNames = [[UIFont fontNamesForFamilyName:aFamilyName] sortedArrayUsingDescriptors:sortDescriptors];

        [fontsByFamilyName setObject:fontNames forKey:aFamilyName];
        NSLog(@"fonts :%@", fontsByFamilyName);           
    }

寻找字体的“iOS”名称...我用这种方法找到了我的自定义字体。如果你不这样做,让我们检查一下你是如何添加字体的(可能是忘记了一个动作)。来源: http: //forgecode.net/2010/08/uifont-name-grabber/

于 2013-07-05T19:16:21.587 回答
2

要获取您必须传入的字体名称,请使用Font BookfontWithName:size:应用程序打开您的字体,然后查找该属性。确保您也已将其添加到文件中。PostScript nameInfo.plist

于 2013-07-05T19:16:25.370 回答
1

有趣的是,它竟然是我的 Mac。当我让我的朋友安装它们时,他没有任何问题。我的 Mac 是旧的,所以也许这就是原因。以下是规格:

**Mac:** MacBook Pro 15" (Late 2008)
**Processor:**  2.4 GHz Intel Core 2 Duo
**Memory:** 4 GB 1067 MHz DDR3
**Graphics:** NVIDIA GeForce 9600M GT 256 MB
于 2014-02-12T01:58:31.697 回答
-1

为 'My-Font' 传入 'nil' 可以为默认字体调整文本大小 - 无需知道实际使用的字体是什么:

button.titleLabel.font = [UIFont fontWithName:nil size:10.0f];
于 2015-03-09T01:25:41.283 回答