zoukankan      html  css  js  c++  java
  • iOS:自定义字体

    转自: <iOS tips: Custom Fonts> Post by Steve Vlaminck

    My good friend google told me that using a custom font in iOS is “easy”. And for the most part it is, but I got tripped up in a few places. I happen to have Apples Keychain example code lying around so I’ll be using that in this example. I am also using Xcode 4.5 and focusing on iOS 5.1, and iOS 6. - See more at: http://refactr.com/blog/2012/09/ios-tips-custom-fonts/#sthash.KJANfVRI.dpuf

    Adding the font to your project

    Drag the .ttf file to your project.

    Make sure “Add to targets” is checked.

    Verify the font is in the project. There are two places you can do this.

    By selecting the font, and verifying “Target Membership” in the Utilities area.

    And By selecting your apps target, selecting the “Build Phases” tab, and verifying that your font is in the “Copy Bundle Resources” section.

    And finally, add the font to your Info.plist. Note that most apps change the name of their plist to something like -Info.plist. Add a key of “Fonts provided by application”, and make sure it’s an array, then add your font file name as an item in the array. Make sure you use the exact file name, and that your file name has an all-lowercase extension (.TTF apparently doesn’t work on iPhones, but .ttf does).

    Knowing your font

    This is where I had some issues. When you add your font you use the file name, but when you use your font you use the font name… The EXACT font name. If you ctrl + click on the .ttf file and select “Get Info”, you can find the “Full Name”. That seems to work with a lot of fonts, but the font I’m using doesn’t work that way. I had to open the .ttf file in the Font Book application, and look at the window header. - See more at: 

    Using this name, you can log what font names you have available by using the fontNamesForFamilyName method like so:

    NSLog(@"tt0001m_: %@",
    [UIFont fontNamesForFamilyName:@"Swis721 Lt BT"]
    );

    Which gives the output:

    2012-08-24 11:25:10.968 GenericKeychain[7260:c07] tt0001m_: (
    "Swiss721BT-Light"
    )

    Using your font programmatically

    Say you have a UILabel:

    UILabel *myLabel = [[UILabel alloc] init];
    [myLabel setText:@"Label Text"];

    We set the font of our label by creating a UIFont, and setting it to our label with setFont.

    UIFont *swissLight = [UIFont
    fontWithName:@"Swiss721BT-Light"
    size:myLabel.font.pointSize];
    [myLabel setFont:swissLight];

    Using your font in Interface Builder

    This is an interesting solution that I got from stackoverflow. First you need to create a subclass of UILabel. Hit Cmd + N (or go to File > New > File…), select “Cocoa Touch” > “Objective-C class”, and hit “Next”. Name your class something like CustomFontSwissLightLabel and choose UILabel in the “Subclass of” section. Open your CustomFontSwissLightLabel.m file and override the awakeFromNib method like so:

    - (void)awakeFromNib {
        [super awakeFromNib];
        self.font = [UIFont fontWithName:@"Swiss721BT-Light"
        size:self.font.pointSize];
    }

    Now add a UILabel to you .xib file. In the “Utilities” area, under the “Identity Inspector” tab change the Class from UILabel to CustomFontSwissLightLabel.

    That’s all there is to it. 

    It really is pretty easy, but there are a handful of things that can trip you up, and I wrote this blog post because I got tripped up on every one of them :)

    This entry was posted in Agile ProcessesSoftware Development and tagged . Bookmark the permalink.
  • 相关阅读:
    Android Studio运行Hello World程序
    WPF,回车即是tab
    phpmyadmin上在某数据库里创建函数
    thinkphp项目部署在phpstudy里的nginx上
    《原创视频》牛腩学docker简记
    visual studio添加docker支持简记
    edge 浏览器中数字显示为链接
    JSON.net 在实体类中自定义日期的格式
    让easyui 的alert 消息框中的确定按钮支持空格键
    修复百度编辑器(UM)禁用时上传图片按钮还可点击的BUG;
  • 原文地址:https://www.cnblogs.com/ihojin/p/ios-custom-font.html
Copyright © 2011-2022 走看看