Reputation: 1447
i have added a custom font - one which i have downloaded from from the net. it is in TTF format and can be used on other programs on my mac. (Successfully added it to font book and used in fireworks).
I have added the key to the info .plist but the font doesn't seem to work.
When i NSLog the font it is null so i am assuming it isn't finding it.
The TTF is called LONDON__.TTF but has a name as London font.
What should i use as the font and add to the info.plist for this to work?
Thanks
Dan
Application fonts resource path = LONDON__.TTF
NSLog(@"%@",[UIFont fontWithName:@"London font" size:22]);
and
NSLog(@"%@",[UIFont fontWithName:@"LONDON__.TTF" size:22]);
Both of them return Null.
Although the file is named LONDON__.TTF the font appear as everyone in Font Book. is this the issue?
Upvotes: 9
Views: 8564
Reputation: 1398
Objective-C:
for(NSString* family in [UIFont familyNames]) {
NSLog(@"%@", family);
for(NSString* name in [UIFont fontNamesForFamilyName: family]) {
NSLog(@" %@", name);
}
}
Swift:
for family: String in UIFont.familyNames() {
print("%@", family)
for name: String in UIFont.fontNamesForFamilyName(family) {
print(" %@", name)
}
}
Copy the .ttf
file into your project (i.e. drag it to the resource folder in the Project navigator).
In your Info.plist
add an entry with the key Fonts provided by application
with an Array type. As Item 0, add a String value corresponding to the font file name (e.g. OpenSans-ExtraBoldItalic.ttf
).
Make sure the font file is included in the copy bundle resources
list under the project settings.
Upvotes: 38
Reputation: 8329
Both of those names sound wrong. Assuming you've correctly added it to your plist, use something like
NSLog(@"Fonts: %@", [UIFont familyNames]);
to see what its internal name is.
BTW, be sure that the licensing of the font allows embedding. Many commercial fonts do not.
Upvotes: 1
Reputation: 349
You need to make sure the font file is included in the copy bundle resources
list under the project settings. My font wouldn't show up in [UIFont familyNames]
till I added it here as it was not automatically included when added to the project.
Upvotes: 6