Ios Can';t在UI按钮上更改自定义UI字体大小

Ios Can';t在UI按钮上更改自定义UI字体大小,ios,uibutton,uifont,Ios,Uibutton,Uifont,我有一个按钮,我使用自定义UIFont来显示文本。字体正确加载并正确应用于按钮标题。我的问题是我似乎无法更改字体大小: UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect]; [button addTarget:self action:@selector(loginButtonClicked:) forControlEvents:UIControlEventTouchUpInside]; [button setT

我有一个按钮,我使用自定义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)

执行以下操作:

    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”名称。。。我用这种方法找到了我的cusom。如果您没有,让我们检查一下您是如何添加字体的(可能忘记了一个操作)。
来源:

要获取字体名称,您必须输入
fontWithName:size:
,使用font Book应用程序打开字体,然后查找
PostScript name
属性。让舒尔也将其添加到
Info.plist
文件中。

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

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


()

有趣的是,原来是我的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

为“我的字体”输入“nil”可以调整默认字体的文本大小,而不必知道实际使用的字体是什么:

button.titleLabel.font = [UIFont fontWithName:nil size:10.0f];

我猜
fontWithName
中的“MyFont”是空的。。。简单快捷:
UIFont*myFont=[UIFont-fontWithName:@“myFont”大小:8.0f];NSLog(@“MyFont:%@”,MyFont)@Larme是的,它是。。。嗯,为什么会这样?我可以在Bundle Phase->Copy Bundle Resources下看到它。此外,它看起来像标签上的字体更改确保您的字体名称是正确的。字体名称并不总是字体的文件名。@我是否仔细检查过(从Finder->font->space[用于预览]),它与我正在查找的内容匹配for@logixologist怀疑它。。。OS 3.2及更高版本支持此功能。直接从iPhone OS 3.2文档中的新增内容:想要使用自定义字体的自定义字体支持应用程序现在可以在其应用程序包中包含这些字体,并通过在其Info.plist文件中包含UIAppFonts键向系统注册这些字体。此键的值是一个字符串数组,用于标识应用程序包中的字体文件。当系统看到该键时,它将加载指定的字体并使其可供应用程序使用。是的,我在列表中看不到我的字体OK。您的字体在构建阶段/复制包资源中,以及在MyAppl-Info.plist文件中由应用程序提供的字体中也是如此。您是否尝试重新安装字体?就像@Matt Mc给出的链接一样?我认为我的字体文件实际上是错误的。。。我将需要阅读网页字体与桌面字体所有上述完成,字体出现在整个,并在FontBook检查。。。我认为我的问题实际上是字体类型不正确(web字体与桌面字体)