我正在开发游戏,我想在我的应用中使用自定义字体。如果这很重要,我正在使用SpriteKit。我已经尝试过使用此https://github.com/deni2s/IBCustomFonts,但是我无法使用此字体http://www.fontspace.com/freaky-fonts/emulogic
我已经尝试过各种方法,并且已经在应用程序的info.plist中注册了字体。有人知道发生了什么吗?
我正在开发游戏,我想在我的应用中使用自定义字体。如果这很重要,我正在使用SpriteKit。我已经尝试过使用此https://github.com/deni2s/IBCustomFonts,但是我无法使用此字体http://www.fontspace.com/freaky-fonts/emulogic
我已经尝试过各种方法,并且已经在应用程序的info.plist中注册了字体。有人知道发生了什么吗?
Answers:
首先,我假设SpriteKit没有任何区别。
最后,您希望在应用启动时列出所有字体,只是为了查看字体的可用名称。您将使用以下这段代码来做到这一点:
NSArray *fontFamilies = [UIFont familyNames];
for (int i = 0; i < [fontFamilies count]; i++)
{
NSString *fontFamily = [fontFamilies objectAtIndex:i];
NSArray *fontNames = [UIFont fontNamesForFamilyName:[fontFamilies objectAtIndex:i]];
NSLog (@"%@: %@", fontFamily, fontNames);
}
在打印结果中搜索您的字体,例如,我将搜索“ Josefin”,然后看到实际的字体名称是“ JosefinSansStd-Light”。之后,您只需要通过以下方式使用该字体:
UIFont *customFont = [UIFont fontWithName:@"JosefinSansStd-Light" size:20];
在iOS8中,您可以将字体直接添加到项目中,并且它们在界面生成器中可见。修改您的代码以解决此问题,但是可以通过编程方式为iOS7设置字体并在xCode6界面构建器中选择它。PS。xCode6中的界面生成器为您提供了正确的字体名称,您可以将其复制粘贴到以下代码中。
#define SYSTEM_VERSION_LESS_THAN(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedAscending)
if(SYSTEM_VERSION_LESS_THAN(@"8.0"))
{
UIFont *customFont = [UIFont fontWithName:@"OpenSans-Light" size:32];
self.registerLabel.font = customFont;
}
希望这会有所帮助,欢呼。
UIAppFonts
let fontFamilies = UIFont.familyNames() for familyName in fontFamilies { let fontNames = UIFont.fontNamesForFamilyName(familyName as String) println("\(familyName): \(fontNames)") }
for name in UIFont.familyNames() { debugPrint(UIFont.fontNamesForFamilyName(name)) }
使用自定义字体没有问题,我做到了。跟着这些步骤:
并建议您将该名称添加为..Prefix.pch文件中的宏。如果必须多次使用字体,则在项目中使用它会更容易。
我认为您遇到的问题是您正确注册了字体,但未将其复制到应用程序捆绑包中。因此,当应用执行时,找不到字体。这就是为什么第二步很重要的原因。我花了很多时间试图弄清楚这一点:)
please try below code.
@end
@implementation UILabel (CustomFont)
-(void)setFontName:(NSString *)value{
CGFloat newsize = (self.font.pointSize * [UIScreen mainScreen].bounds.size.width)/320;
[self setFont:[UIFont fontWithName:self.font.fontName size:newsize]];
}
@end
@implementation UITextField (CustomFont)
-(void)setFontName:(NSString *)value{
CGFloat newsize = (self.font.pointSize * [UIScreen mainScreen].bounds.size.width)/320;
[self setFont:[UIFont fontWithName:self.font.fontName size:newsize]];
}
@end
@implementation UIButton (CustomFont)
-(void)setFontName:(NSString *)value{
CGFloat newsize = (self.titleLabel.font.pointSize * [UIScreen mainScreen].bounds.size.width)/320;
[self.titleLabel setFont:[UIFont fontWithName:self.titleLabel.font.fontName size:newsize]];
}
@end
@end
@interface UILabel (CustomFont)
-(void)setFontName:(NSString *)value;
@end
@interface UITextField (CustomFont)
-(void)setFontName:(NSString *)value;
@end
@interface UIButton (CustomFont)
-(void)setFontName:(NSString *)value;
@end