How to integrate and use Font Awesome with Objecti

2019-01-21 05:00发布

问题:

So I am trying to use this font http://fortawesome.github.com/Font-Awesome/. I've added the font as a resource and put it in the plist file. Here's how I am using it:

[homeFeedButton.titleLabel setFont:[UIFont fontWithName:@"fontawesome" size:8]];
NSString *str = [NSString stringWithFormat:@"%C", @"\f030"];

However this doesn't work. Does anyone know how to use this font in an Xcode project?

回答1:

It is because your +[NSString stringWithFormat:] method contains the literal for a unichar, not an NSString, which is an object that uses %@, which is beside the point because literal'ing a literal is redundant.



回答2:

BEST solution for FA with XCode:

  1. Copy the icon you want from http://fontawesome.io/cheatsheet/ (I mean mark and copy the icon itself):

  1. Then add a label to your storyboard, and on its properties:

  • RED - Choose FontAwesome as family
  • GREEN - Set the size you want
  • BLUE - Paste here what you copied in the 1st step. (dont worry about the question mark - in the view you should see it properly).

That's it.

If you need to change the icon in the code - you can paste 1st step inside your code too:



回答3:

Not sure you ever got this working properly, but there's now a couple of nice projects on github:

https://github.com/alexdrone/ios-fontawesome - which gives you a category for NSString which offers basic help using FontAwesome.

and https://github.com/leberwurstsaft/FontAwesome-for-iOS which gives you a NSString category with fontAwesomeIconStringForIconIdentifier and also an UIImageView subclass: FAImageView



回答4:

In Swift:

Font Awesome Cheatsheet.

Tutorial on how to integrate the font called "Font Awesome" in your Xcode project.

Common Mistakes With Adding Custom Fonts to Your iOS App

let label = UILabel(frame: CGRectMake(0, 0, 100, 100))
label.font = UIFont(name: "FontAwesome", size: 40)
let myChar: UniChar = 0xF180
label.text = String(format: "%C", myChar)
self.view.addSubview(label)


回答5:

You can just use the literal code string by affixing it with \u.

e.g. You can use \f030 in your iOS app using the following snippet.

[[[UILabel alloc] initWithFrame:CGRectZero] setText:@"\uf030"];



回答6:

You can also use the library FontAwesome+iOS for iOS

Then you only need to use this code:

label.text = [NSString fontAwesomeIconStringForIconIdentifier:@"icon-github"];
// or:
label.text = [NSString fontAwesomeIconStringForEnum:FAIconGithub];


回答7:

So, I can answer it for Swift & Objective C both. (using Swift 3.0 here)

Adding & configuring font-awesome file & Editing Storyboard

Just download font-awesome from here: fontawesome.io and add .ttf to your project

Check the image below for more details...

Now the coding part

Swift 3.0

let iconUniChar: UniChar = 0xf113  
textLabel.text = String(format: "%C", iconUniChar) 

Objective C

_textLabel.text = [NSString stringWithFormat:@"%C", 0xf113];

And, if you are still facing the trouble here's the

entire source code



回答8:

NSLog your all font using following code and provide exact name.

 NSArray *familyNames = [[NSArray alloc] initWithArray:[UIFont familyNames]];
    NSArray *fontNames;
    NSInteger indFamily, indFont;
    for (indFamily=0; indFamily<[familyNames count]; ++indFamily)
    {
        NSLog(@"Family name: %@", [familyNames objectAtIndex:indFamily]);
        fontNames = [[NSArray alloc] initWithArray:
                     [UIFont fontNamesForFamilyName:
                      [familyNames objectAtIndex:indFamily]]];
        for (indFont=0; indFont<[fontNames count]; ++indFont)
        {
            NSLog(@"    Font name: %@", [fontNames objectAtIndex:indFont]);
        }
    }


回答9:

Below is the code to set image to a UIButton using FontAwesome

 UIButton *btnMenu = [UIButton buttonWithType:UIButtonTypeCustom];
 btnMenu.frame = CGRectMake(0, 0, 40, 32);
 [btnMenu setTitle:@"\uf0c9" forState:UIControlStateNormal];
 [btnMenu setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
 [btnMenu.titleLabel setFont:[UIFont fontWithName:@"FontAwesome" size:16]];


回答10:

I was looking for the helper library for Swift3 and found this to be very simple and working solution https://github.com/Syndicode/FontAwesomeKitSwift3. It has animations that explain for novices like me how to include it and use quickly.



回答11:

For using custom fonts make sure that the name of font which you have given in your plist and here,have the same real name.I mean the name of the font should be the same which in generally it have.Dont try to modify for the name.Check if the name of the font you are using is really the name of this font.

Thanks Sanjay



回答12:

Here is an example for a cell's label text:

cell.textLabel.font = [UIFont fontWithName:@"FontAwesome" size:12];
cell.textLabel.text = @"\uf000";

Make sure you get the font name correct as suggested above.



回答13:

FontAwesome font name comes in like so: FontAwesome

Try [UIFont fontWithName:@"FontAwesome" size:8]].

Watching this video tutorial might help: http://youtu.be/J1EHAS0icv0.



回答14:

not sure if this answer will be useful looking at the date you posted your question.... but to help someone maybe who is doing it at the moment,

[self.homefeedbutton setTitle:@"o" forState:UIControlStateNormal]; [self.homefeedbutton.titleLabel setFont:[UIFont fontWithName:@"fontawesome" size:30]];

setTitle:@"o" o is a name of the font, don't use the unichar, instead rename your font to something else preferable a letter, e.g if you check fontello.com , select icon, then click customize code tab, on top of you icon there is a small box, change it to any letter....

shout if its not clear enough , I will try to explain in a different way.



回答15:

I have made a library in swift language with easy integration for UILabel, UIButton and UIBarButtonItem. Also supports Pods. Font Awesome Swift



回答16:

This may help someone else... I had about 90% of Font Awesome icons working in my project, except a handful of them I couldn't get them to display correctly. They'd instead display a "..." icon instead.

After several hours of investigating unicode characters in Objective-C, I realised I was barking up the wrong tree! "..." isn't a FontAwesome icon, it's UIKit telling me that the frame of the UILabel is too small/font too large to display the text string! D'oh.



回答17:

In case anyone is wondering, import the following in the .m file.

import "NSString+FontAwesome.h"