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

    准备:你的自定义字体文件-〉ttf,odf字体文件。

    现在网上一般下的中文字体文件都是ttc格式的,这个需要转换一下,网上有很多转换工具,不过都是windows下面的。(ttc就是多个ttf压在一起形成的)

    使用

    1.加入工程中

    2.得到UIFont来使用

    方法一:

    Info.plist中添加Fonts provided by application项,加入一个item值为刚刚添加的字体文件文件名。

    如果不知道这个字体的FontName,可以使用Mac OS中的 字体册 程序查看。

    [textField setFont:[UIFont fontWithName:@"Amelia BT" size:12]];

    方法二:

    直接使用代码来获取UIFont

    -(UIFont*)customFont
    {// 你的字体路径
        NSString *fontPath = [[NSBundle mainBundle] pathForResource:@"Amelia BT" ofType:@"ttf"];
        
        NSURL *url = [NSURL fileURLWithPath:fontPath];
        
        CGDataProviderRef fontDataProvider = CGDataProviderCreateWithURL((__bridge CFURLRef)url);
        if (fontDataProvider == NULL)        return nil;
    
        CGFontRef newFont = CGFontCreateWithDataProvider(fontDataProvider);
        CGDataProviderRelease(fontDataProvider);
        if (newFont == NULL) return nil;
        
        NSString *fontName = (__bridge NSString *)CGFontCopyFullName(newFont);
        UIFont *font = [UIFont fontWithName:fontName size:12];
        
        CGFontRelease(newFont);
        
        return font;
    }

    修正:

    1.方法二中如果要使用UIFont,那么 不添加 Fonts provided by application项是不可以的。如果仅仅使用

    CGFontRef,那么可以不添加。
    2.测试中没有一次用ttc提取的ttf成功改变字体(中文的),但是下载的源文件就是ttf的都成功更改了字体。
  • 相关阅读:
    UOJ309 UNR #2 排兵布阵
    BZOJ4860: [Beijing2017]树的难题
    CQOI2017 部分题解
    SDOI2017 Round1 Day2 题解
    记SCOI2017
    BZOJ3810: [Coci2015]Stanovi
    BZOJ4785: [Zjoi2017]树状数组
    「ZJOI2007」「LuoguP1169」棋盘制作(并查集
    「LuoguP4147」 玉蟾宫(并查集
    「LuoguP1402」 酒店之王(最大流
  • 原文地址:https://www.cnblogs.com/v2m_/p/2688768.html
Copyright © 2011-2022 走看看