I am trying to install my custom font for my app. I alreayd donde this many of times, but with this font I don't know why it doesn't work
Note: My info.plist its correct with the file Geometry Soft Pro.ttf
Font file:
Geometry Soft Pro.ttf
I already try the code with:
Geometry Soft Pro
GeometrySoftPro
GeometrySoftPro-BoldN
GeometrySoftPro-Bold N
Geometry Soft Pro-Bold N
Geometry Soft Pro Bold N
My code:
[nivel.titleLabel setFont:[UIFont fontWithName:#"Geometry Soft Pro" size:42]];
Font info:
Here is my info.plist
Please remove the white spaces from the font file name. And change name in info.plist file. Thats all. Happy Coding :)
I had the same issue but none of this helped me, i change the Fonts provided by application with UIAppFonts and it works , even if the .ttf file name is different from the font name.
Check if font file is added in "Copy bundle resources" under project settings-> Build phases.
Also install the font in MAC & use the same name (with / without spaces in between) in your iOS code. Let me know if it works for you.
Related
I've been working on the launch screen of an app and I ran across a problem. The custom font that I was using (grand hotel) shows up in the storyboard but is replaced by a default font in the simulator. It should be like this, but instead this happens. I've tried everything online: added it to the plist, set the target, put it in Copy Bundle Resources. I've looked everywhere but I can't seem to find a solution that solves my problem. Is there any way for me to fix this issue? Could it be because it is a launch screen?
Follow the below steps.
(1) Remove your custom fonts.
(2) Re-add your font like, Right click on your project --> add files --> select your custom font. (Make sure option copy items if needed is checked).
(3) Clean(⌘+shift+K) + Build(⌘+shift+B) your project.
To check if the custom fonts are availabel on runtime add this code:
print(UIFont.fontNames(forFamilyName: "Your_Custom_font_name")) // if it returns empty array it means fonts are not available on runtime and it is not added correctly.
Please check this... may any step you miss
http://codewithchris.com/common-mistakes-with-adding-custom-fonts-to-your-ios-app/
Did you somewhere set the font programmatically by name?
I figured out, that the name of a certain font is not necessarily the name, which is shown in Xcode. You can check out the real font names in Xcode by putting the following somewhere in your code:
for family: String in UIFont.familyNames {
print("\(family)")
for names: String in UIFont.fontNames(forFamilyName: family)
{
print("== \(names)")
}
}
I am trying to use custom font (Bebas Neue) in my iOS application. The steps I took are:
Copy the .otf files to the project.
Confirm the .otf files have set the project as target.
Added the .otf files in 'Fonts provided by application' in plist.
In Build Phases, the .otf files are in 'Copy Bundle Resources'.
Install the font on my Mac.
Try to print out all fonts available but I can't see my custom font.
The code I used:
for name in UIFont.familyNames() {
println(name)
if let nameString = name as? String
{
println(UIFont.fontNamesForFamilyName(nameString))
}
}
Trying to set the font in code and it worked.
The code I used:
textLabel?.font = UIFont(name: "BebasNeueRegular", size: 14)
But I can't set it in interface builder. Any idea?
Screenshots:
Try Below Steps: Code tested in Swift 3.
Step 1: Add Your custom font into your project( Make sure Add to Target
ticked).I am using "PermanentMarker.ttf","Pecita.otf" and "AROLY.ttf" font as a test font.
Note: Supporting font Type ttf and otf (Both font types should work)
Step 2: Modify the application-info.plist file.
Add the key "Fonts provided by application" in a new row and add "PermanentMarker.ttf" as new item in the Array "Fonts provided by application".
Your plist should looks like this
Now the font will be available in Interface Builder. To use the custom font in code we need to refer to it by name, but the name often isn’t the same as the font’s filename
Now, You can access the Custom Font from your viewController. I am testing the font by placing a UIlabel to the Storyboard like below.
Update 2: Working Solution
After, imported your custom font and updated your plist.selectlabel from your storyBoard,goto Attributes Inspectorunder Label>Text type> select to Attributed and choose your custom font from the list.
Output:
Update 1
If your custom font still not listed in Xcode font list.check the related link to your issue
http://codewithchris.com/common-mistakes-with-adding-custom-fonts-to-your-ios-app/
custom font not displaying on some simulator
Note: Still,You can assign BebasNeue or custom font programatically to your label or button etc. even its not showing in your interface Builder.If you having trouble setting font to your object programatically.try below method.
Assign font to UILabel:
label?.font = UIFont(name: "BebasNeue", size: 35) // Set to any size
Assign font to UIButton:
button.titleLabel?.font = UIFont(name: "BebasNeue", size: 35)
Assign font to UITextField:
textField.font = UIFont(name: "BebasNeue", size: 25)
Assign font to UINavigationBar:
navigationController?.navigationBar.titleTextAttributes = [NSFontAttributeName: UIFont(name: "BebasNeue", size: 25)!, NSForegroundColorAttributeName: UIColor.red]
Assign font to UIToolBar:
UIBarButtonItem.appearance().setTitleTextAttributes([NSFontAttributeName: UIFont(name: "BebasNeue", size: 25.0)!], for: UIControlState.normal)
Output:
Its Easy and simple now- Tested in Xcode 10 and swift 5
Steps to add font to your Xcode
Select your UILabel, UITextField or whatever then under fonts section and follow
Step 1
Select settings menu from left corner of font selection screen. And choose font manager option.
Step 2
Click on the add button as marked below.
Step 3
Select the folder that contains your font. It will be loaded into XCode fonts list.
Steps to add fonts to your project
Don't forget to add description to your plist with the key Fonts provided by application and put font files inside copy bundle resources under project target settings.
Yes! thats it.. njoy..
When using the same font (Bebas Neue), I experience the exact same problem: the font does not show up in the font list for Plain controls.
It does for Attributed controls, as described in Update 2 in Joes post, but then you're actually changing the attributedText instead of the regular text, which may lead to unwanted behavior. For example, you'll have to fiddle with NSMutableAttributedString to change the text or text color at runtime.
I did some investigation on this issue. I used FontLab Studio to modify the font and do some tests. I used Bebas Neue version 1.400 (dated September 15, 2014) from dafont.com.
Maybe the font file was somehow corrupted. Re-saved as .otf and .ttf: Didn't work.
Maybe the meta data of the font were corrupted. Copied all the glyphs to a new font and named that Bebas Neue: Didn't work.
I renamed the font from Bebas Neue to BN: It works! But why?
Maybe you can't use "Neue" in a font name (since Helvetica Neue was the iOS system font up to iOS 8). Renamed the font to Test Neue: Still works.
Maybe you can't use "Bebas" in a font name then? Renamed the font to Bebas: Still works.
What... Just to be sure, I changed the font name back to Bebas Neue: Doesn't work again.
I also tried BebasNeue: Also didn't work.
Then I changed the name to Bebas Neue Whatever: It works.
I really do not understand why this is happening.
Doesn't Apple or Xcode want you to use "Bebas Neue" or "BebasNeue" in the Interface Builder?
I had the normal Bebas Neue installed. Maybe the reference got corrupted?
I really can't tell. Maybe someone on a clean system can try if Bebas Neue works in their Xcode.
Anyway, I achieved my goal: being able to use Bebas Neue (I named the final version "Bebas Neue MyAppName") for Plain styled labels and buttons, so I can design my app as-is and don't have to fiddle around with attributed strings.
Finally, I found the root cause of issues with Bebas Neue fonts.
I don't remember where I have downloaded the fonts, but Bebas Neue fonts are inconsistent.
Download i.e. app called Typelight
Open not Regular, but i.e. Bold font with Typelight.
You need correct most of the Bebas Neue fonts.
maybe there is a difference between folder name and font name the solution would be:
Print all default fonts names.(without custom fonts)
Add custom fonts to project.
Print all fonts names.
and after that compare fonts names.
func printFontsNames() {
let fontFamilyNames = UIFont.familyNames
for familyName in fontFamilyNames {
print("------------------------------")
print("Font Family Name = [\(familyName)]")
let names = UIFont.fontNames(forFamilyName: familyName )
print("Font Names = [\(names)]")
}
}
You can actually just go into attributed fonts, click the custom font window. There click the gear in the upper left and click on the option manage fonts. A window should pop up and on the top and there should be a plus sign to allow you to add fonts. Just choose the custom font you downloaded like xyz.tff and then it should be added.
Important to note is that ttf file should be referenced in the p-list as well as in your project directory!
TLDR
Create a new user account in Mac OS and see if you are able to have success in the new account BEFORE going through all the steps that I went through below. In hindsight, I probably could have just performed steps 7 and 11 and saved hours of hassle.
Problem
After begrudgingly upgrading to Catalina from Mojave so that I could run the latest and not greatest version of Xcode (11.5), I was no longer able to select a custom font from the font picker for PLAIN text controls within interface builder.
As others have mentioned, attributed text works fine, because it uses the systems font picker instead of the "black box / where did these fonts come from???" picker that comes up when using plain text.
Failed Steps
I tried the following steps with no success:
Re-add the font files to the project in hopes that Xcode would fix
the link to the font table that the picker is loading from (still
have no idea why there are certain fonts in the picker and where it
is getting them from).
Reset the Mac OS font caches using several terminal commands in hopes that the picker is loading the list from a corrupt font cache in the OS
Reset the system fonts by choosing File > Restore Standard Fonts in the Font Book app
Screamed at the computer and cursed Apple for what they have become
Tried installing the fonts in the OS to see if that resolved anything, because I remembered it worked a couple years ago when I ran into something similar.
Searched the internet for any clues and tried virtually everything that seemed reasonable.
Created a brand new simple project ... still could not select a custom font ... ruh oh
Bring in the Big Guns
Cursed myself for not performing a CLEAN install of Catalina and decided to reinstall Catalina from scratch.
Realized that I made a mistake using Time Machine to backup my data before re-installing, because it would not let me bring in just my data files. The Migration Assistant requires the Library data to be imported (option was grayed out when restoring), which I did not want to do ... cursed Apple and myself again because I knew this was gonna bite me in the ... as I suspected there was garbage in the profile that was causing this (I was right ... see below)
Tried to select the font in Xcode while running under the IMPORTED account from Migration Assistant ... SAME PROBLEM ... could not select a custom font
SUCCESS!!!
Created a new user and created a new simple project under that account. BINGO!!! I could select a font now!!! Somehow my user account was corrupted during the upgrade to Catalina
It was an old bug since Xcode 3.x:
there is a bug/known issue with IB on XCode 3.x with non-standard fonts and Interface Builder. Custom fonts generally need to be set programatically (via [UIFont fontWithName:])
There are some work around like this with User Defined Runtime Attribute and categories .
I had similar problem
added custom font and also assign it to UILabel all working fine but after a few times later it's wont work as expected.
Trying all solution but nothing work for me. So here is my solution, again going to previous UILabel (already have newly added custom font) select->label->select newly added font. Check other UI controls Font.
now it's working fine.
Hope this help newDevs...
This is still a recurring issue for me with Swift 4.2, even without making any changes that would cause it.
Removing the font files from the Xcode project and adding them again fixes the problem (until next time).
In my case, a font family was missing in Interface builder, because one of the fonts from that family was not added to the project, but was indicated in the info.plist file.
Generally removing all my custom fonts from the project and adding them again - fixed the issue.
I added my two fonts to my project folder:
I added them to info.plist:
I can not see them in my custom font list in the storyboard:
What have i done wrong?
I know this is a pretty old question, but I ran into the same issue. And the above tips didn't work for me. Apart from the standard checks (present in bundle, restarting XCode, the thing that fixed my issue was that my label text type was marked as "Plain" and hence some fonts were not showing in the dropdown in the Storyboard. As soon as I changed the text type to "Attributed", all the fonts appeared in the dropdown.
Hope this'll help someone stuck with the same issue.
This drop-down box shows the system-wide installed fonts. So you need to install your custom font on your system first so it's appearing in that drop-down box. You can do that by double-clicking it, the FontBook.app opens and asks you whether you want to install the font.
This was a huge headache for me but I simply fixed it by:
I fixed the issue by restarting my Mac.
Then restarting Xcode.
I Installed the font in the system as per DarkDust solution and i am able to see the font in attributed type.
Then i changed the type to plain and i able to see the Custom font in the font types drop down.
Had the same problem but this SO answer by user Saranjith solved it while the other solutions in this thread didn't: Xcode 8 custom font doesn't show up in interface builder
Basically in Font Book select "Computer Fonts" and then hit the + button and re add the Fonts.
This is happened to me after moving to Xcode 11 in Catalina from Xcode 10 in Mojave.
Well, silly mistake on my part, but I didn't realize my font was named something way different from the file name.
Double-clicking the actual font file opened it in the font book, and that showed the actual font name. It was in the dropdown all along.
I solved my problem when i used font name. Do not use file name. I was used like this [UIFont fontWithName:#"appFont" size:17] but it is wrong.
Upload your font file to https://fontdrop.info/ and use the name
My font file name is appFont.ttf but when i uploaded i saw Roboto Regular.
[UIFont fontWithName:#"Roboto Regular" size:17]
Sometime I go to another file and come back, then my custom fonts are arrived. I think this is an issue of Xcode and will be solved in following version.
In my case I just turn the text from plain to attributed then turn it back again to plain then it showed up., hope this help anyone.
I ran into the same issue and fixed with below steps
Closed storyboard
Cleared derived data
Cleaned the project and open the story board
If this is not working then restart the Xcode.
Thanks
For me it was case sensitive issue with the font file name. Not sure if it's always for this reason...
In my case my fonts were in woff2 formats. Although woff2 is supported in iOS, the fonts don't appear or get rendered in Storyboards.
If Xcode showed your custom font before but stopped to do it at some moment, try to readd font files to your project. It solved the problem for me. Other answers weren't helpful.
OK, so I've done a lot of reading, followed several tutorials, and I still cannot add a custom font to my iOS app.
I've (1) added and copied the fonts to xcode.
I've (2) added them to the correct target.
I've (3) made sure they are included as resources in the bundle.
I've (4) included them in my info.plist.
I've (5) tried to find them in my list of fonts by inserting this code.
Yet the fonts STILL do not appear. I recognize that the font name is not the same as the file name, but I compared the list of font family names and font names from before and after, and they are the exact same, proving no fonts were added. I've followed SO and these tutorials to a T but nothing is working.
You inadvertently added them to the wrong (Test) Info.plist.
In my app, I used custom fonts. It works fine for UILabels, etc...
But the Title is cut from top for Button.
"See the S"
What is happening and how can I resolve this??
try setting button.contentEdgeInsets property to align the title within the button, if it is an issue of misligned baseline of the font you can do this
button.titleLabel.baselineAdjustment = UIBaselineAdjustmentAlignCenters
a few steps:
Include your fonts in your XCode project
Make sure that they’re included in the target
Double check that your fonts are included as Resources in your bundle
Include your iOS custom fonts in your application plist
Find the name of the font
Use UIFont and specify the name of the font
detail for this:
http://codewithchris.com/common-mistakes-with-adding-custom-fonts-to-your-ios-app/
thanks!
In my case it was the font file that was corrupted.
Try to open the ttf file in your mac, select the 'S' and see if the frame that appears cuts off the letter.
My solution was to change the ttf file.