iOS自定义字体


一、下载一个字体库

              在网上下载  .ttf 后缀的字体库:
          

二、打开Build Phases—>Copy Bundle Resources,点击+手动添加



三、成功添加后是这样的


四、在info.plist文件中添加key:Fonts provided by application  type:array,然后将添加的字体库名字导入其中


五、打印字体名字,找到需要的字体

    NSArray *familyNames = [UIFontfamilyNames];

    for( NSString *familyNamein familyNames ){

        printf( "Family: %s \n", [familyNameUTF8String] );

        NSArray *fontNames = [UIFontfontNamesForFamilyName:familyName];

        for( NSString *fontNamein fontNames ){

            printf( "\tFont: %s \n", [fontName UTF8String] );

        }

    }



六、函数调用

    UILabel *myLabel = [[UILabelalloc]initWithFrame:CGRectMake(20,200,200, 30)];

    myLabel.text = @"我的好兄弟%%%123";

    myLabel.font = [UIFontsystemFontOfSize:18];

    [self.viewaddSubview:myLabel];

    

    UILabel *myLabel1 = [[UILabelalloc]initWithFrame:CGRectMake(20,250,200, 30)];

    myLabel1.text = @"我的好兄弟%%%123";

//    myLabel1.font = [UIFont systemFontOfSize:18];

    myLabel1.font = [UIFontfontWithName:@"STHeitiTC-Medium"size:18];

    [self.viewaddSubview:myLabel1];


    UILabel *myLabel2 = [[UILabelalloc]initWithFrame:CGRectMake(20,300,200, 30)];

    myLabel2.text = @"我的好兄弟%%%123";

//        myLabel1.font = [UIFont systemFontOfSize:18];

    myLabel2.font = [UIFontfontWithName:@"STHeitiTC-Light"size:18];

    [self.viewaddSubview:myLabel2];

        效果如下:
       

注:我们项目是在后面才有更换字体的需求,所以都是用到的 systemFontOfSize :方法,而不是是 fontWithName :   size :方法,所以要全部跟换的话,就需要所有都换,工作量非常大啊,所以想到了运行时。

+ (void)load

{

    Method originalMethod = class_getClassMethod([UIFont class], @selector(systemFontOfSize:));

    Method swizzledMethod = class_getClassMethod([UIFont class], @selector(fontWithNameAndSize:));

    method_exchangeImplementations(originalMethod, swizzledMethod);

}


+ (UIFont *)fontWithNameAndSize:(CGFloat)fontSize

{

    NSLog(@"fontWithNameAndSize");

    return [UIFontfontWithName:@"STHeitiTC-Light"size:fontSize];

}




谢谢阅读,不足之处烦请指出。。。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值