I am updating the icons in my app. After I heard Apple released an icon font named SF Symbols with iOS 13, I was wondering if I can only use them in iOS 13 or if it is possible to use them in lower versions of iOS too.
If I want to use them, do I have to implement a fallback for older versions?
You can not use SFSymbols natively in iOS versions older than iOS 13 (see Apple's Human Interface Guidelines for SF Symbols).
However, if you are interested in using the graphics you can use the SF Symbols app to export SVG versions of the icon. Then use some graphics tool to convert them to PNG icons you can import into your asset catalog.
You can open .svg use Figma. Then select the Regular-M and export as PDF or PNG.
Update for more details:
You can use the PDF vector assets in Xcode. So that the icon should fit any size you want. Please check this blog: https://useyourloaf.com/blog/xcode-9-vector-images/
The new Xcode has a different UI but basically the same. In the Assets Catalog:
Drag your PDF vector file in.
Check "Preserve Vector Data"
Choose "Single Scale"
Work around in progress
I did not manage to find the solution, I gave up, but actually I went pretty far in investigating. Maybe someone luckier than me will be able to figure out hpw to continue the work I started:
In Apple documentation, it is said that, in order to easily browse all the new iOS 13 SF Symbols, you can dowmload the SF Symbols app : https://developer.apple.com/design/human-interface-guidelines/sf-symbols/overview/
Once instaled you can go in Application > SF Symbols > showPackage content
From there, under content > Resources we can find an interesting file named SFSymbolsFallback.ttf
And if you try to open this file on https://fontdrop.info/ you can see that it contains all the font glyphs that are released in iOS 13 as SF Font, with associated unicodes
Bingo? not so fast...
From there I tried to import this .ttf into my project in iOS 12, on XCode 10.2.1, but it seems that it is never properly imported. It is not retrievable in the list of available fonts when calling UIFont.familyNames
More interesting, if I try to import this font in Font Book app, I receive a warning that says that it contains duplication, some kind of conflict with an existing font
From there?
My guess is that there is another font that prevent SF Symbols to be installed, in Font Book and on Xcode.
One of the solution could be to find the one that is in conflict in XCode package and delete it ( this may be Symbols font or San Francisco that are causing problems idk)
I also tried to open the font file with a font editor and change its Name and family Name without success.
If anyone want to continue investigating..
Hope this can help someone !
This icon set is based on SF Symbols https://framework7.io/icons/
You can upload the new ios 13 sf-pro-rounded font to your project. Then enable that font in your label.
Open sf symbols, click on the smbol you want, cmd+c, go to your project, click on a label cmd+v. Run the project, and there should be the icon
cheers,
In SF Symbols 3.1, Edit > Copy Image as...
You can choose PNG/point size/pixel scale and paste into Preview etc.
SF Symbols is a system only supported on iOS 13 or later - it's not possible to use them on iOS 12 or below. You'll need to use fallbacks for those older operating systems.
See Human Interface Guidelines
1. Import the font:
Open the Fonts app, search for the SF Pro Rounded font, right-click on the variant you want (e.g. Light) and click Show in Finder. Drag that file (e.g. SF-Pro-Rounded-Light.otf) into your XCode project and tick "Copy if necessary".
2. Select the font:
Select your UILabel or UIButton, set the Title to Attributed (this is important) and select the font you just copied (e.g. SF Pro Rounded Light).
3. Set the symbol:
Find the icon you want in SF Symbols, select it, press CMD+C to copy, switch back to XCode and click in the text part of the UILabel or UIButton Title and press CMD+V to paste.
A huge thank you to Dave van Wijk for the solution!
I have downloaded Open Sans font and added all the .tff files into my Xcode project, and have checked the checkbox in "Target Membership" pane for each file. I have added the UIAppFonts key and values in Info.plist, and I am sure that the values are typo-free. Plus, the .tff files are added to "Copy Bundle Resources", and the custom font is showing up in Interface Builder. And then I changed the font of all the labels to Open Sans in the Interface Builder (no code).
But when I run the app in the simulator, all the labels and buttons are showing the system font in ultra small sizes, like this:
One thing to note is that I am using Xcode 7 beta 5, and the app's Base SDK is iOS 9.
But why is there this problem? Is it a bug? Thanks!
Check That fonts inside the proyect are part of the target.
Select fonts, verify the property Target Membership for your app is checked at the right in File Inspector.
That solved the problem for me:
Blip, here's a photo of what I did in an empty "Single View" project. And, I could see the font on sim and IB editor. Anything look different for your project? Maybe recreate the basics in a new project, just to double check? All of my notes on the image were associated with my original thoughts...just use them for reference as you double check things.
I recently encountered this problem too. But it only happened for one font-style of a font-family, the others worked fine.
I could only solve it by using this font in a button, then the font was also available for other controls such as labels or the large title.
"I have my custom fonts working fine when they are running on the simulator, but is there any way to view custom fonts in the storyboard itself while I'm working? My text doesn't match the size of the default font so I have to keep compiling and running the code and eyeing the correct size by trial and error over and over.
I've seen a few questions hit on this, but it's just bringing up how to upload custom fonts."
I have copied paste this question from Viewing Custom Text in Xcode Storyboard since it describes exactly what I am having trouble with but he had XCode 4 and I have the 5th version. Is there any solution for the XCode 5?
Unfortunately this is a well established bug. Custom fonts do not appear correctly in Interface Builder. You should file an enhancement request with Apple. Until they fix it, you'll just have to live with it.
When visually editing my app using the Storyboard in XCode 6 (also available in XCode 5) I can change the font of UIButtons using the Attributes Inspector. I can change from "System - System" to "Custom" which allows me to change the Family. However, it appears only some families work, as when I try to select others such as "Iowan Old Style" the selection doesn't stick and it shows the previous font. Is this a bug or are fonts restricted in some way that I'm not aware of?
This is a bug in Beta 5. I've experienced the same issues and verified that they programmatically work just setting them via UIFont. This is also a regression since this was working in Beta 4.
Unfortunately, it looks like we're gonna just have to wait until the next beta release (beta 6) for a fix.
It was explained in the WWDC 2014 videos that you can have Custom Fonts at designing time directly in Storyboard, but so far I only see the list of iOS fonts. Any help?
All you have to do is to drag and drop the font files to your Xcode project, then you can find the font in the Custom font list. You don't even have to have them included in your Application Plist. That makes things simpler.
If you already had fonts added to Xcode 5.1 project, they will not show up in the custom fonts list upon upgrading to Xcode6. You can just remove references to the fonts then drop them in the project again and check the "copy to target". This will show custom fonts in the interface builder custom fonts dropdown on xCode6.
First use your custom font in storyboard then you can use it in code.