返回顶部
首页 > 资讯 > 移动开发 >详解iOS设置字体的三种方式
  • 242
分享到

详解iOS设置字体的三种方式

ios字体 2022-05-22 01:05:34 242人浏览 薄情痞子
摘要

有时候项目需要显示一些非系统的字体达到一些UI的效果,目前设置字体有三种方式,默认方式、bundle方式,coreText方式。 1 默认方式 这种方式就是正常的字体设置方式 l

有时候项目需要显示一些非系统的字体达到一些UI的效果,目前设置字体有三种方式,默认方式、bundle方式,coreText方式。

1 默认方式

这种方式就是正常的字体设置方式


label.font = [UIFont fontwithname:@”Blazed” size:42]; 

至于第一个参数的名字,可以通过以下方法输出所有字体名字列表


[UIFont familyNames]

只要名字列表中存在的,都可以用这种方式关联到对应的字体上。

2 绑定自定义的字体包

其实第二种方式和第一种方式在代码上是一样的,依旧是通过名字设置字体


label.font = [UIFont fontwithname:@”Blazed” size:42];

只是要想使用往上下载的字体文件,先将字体文件加到系统的字体目录中。

具体操作如下:

1 下载目标的字体文件并添加到工程中,名字为fontTest.ttf

2 在info.plist中,添加 Fonts provided by application 项, 打开对应的数组,可以设置多个字体,在Item0中 输入fontTest.ttf。

这个时候再执行[UIFont familyNames],新加的字体就存在于列表中,那么直接设置名字就可以设置上字体了。

3 通过CoreText绑定字体

第二种方式基本基本就可以满足大部分的需求,只有一个问题,就是字体包大小不一定,几十兆到几百兆不等,随着其他资源包一起打进ipa会让包变得很大,尤其是有的业务需要很多的字体包,那么肯定是需要动态网络下载的,这个动态下载的字体文件目前苹果开放的接口是无法动态添加配置信息到info.plist的。这个时候就需要CoreText接口动态绑定到内存中。

当然,这里需要引入CoreText框架


#import < CoreText/CoreText.h>

 +(UIFont*)doGetCustomFontWithPath:(NSString*)path size:(CGFloat)size
{
  if (!path) {
    return [UIFont systemFontOfSize:21];
  }
  //  NSString *path2 = [path stringByAppendingString:@"1"];
  NSURL *fontUrl = [NSURL fileURLWithPath:path];
  //  [[NSFileManager defaultManager] copyItemAtPath:path toPath:path2 error:nil];
  CGDataProviderRef fontDataProvider = CGDataProviderCreateWithURL((__bridge CFURLRef)fontUrl);
  CGFontRef fontRef = CGFontCreateWithDataProvider(fontDataProvider);
  CGDataProviderRelease(fontDataProvider);
  CTFontManagerReGISterGraphicsFont(fontRef, NULL);
  NSString *fontName = CFBridgingRelease(CGFontCopyPostScriptName(fontRef));
  UIFont *font = [UIFont fontWithName:fontName size:size];
  CGFontRelease(fontRef);
  return font;
}

总结

以上所述是小编给大家介绍的iOS设置字体的三种方式,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对编程网网站的支持!

--结束END--

本文标题: 详解iOS设置字体的三种方式

本文链接: https://lsjlt.com/news/30275.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 详解iOS设置字体的三种方式
    有时候项目需要显示一些非系统的字体达到一些UI的效果,目前设置字体有三种方式,默认方式、bundle方式,coreText方式。 1 默认方式 这种方式就是正常的字体设置方式 l...
    99+
    2022-05-22
    ios 字体
  • iOS自定义字体设置和系统自带的字体详解
    前言 有时候我们写app的时候不想使用默认的字体,我们会用到UI给我们设计好的字体,或者别的字体,那么我们改如何设置呢. 首先先看一下我自己导入的字体和苹果给我们自带的字体都有哪些吧...
    99+
    2022-05-28
    ios 自定义字体 自带字体
  • 详解Spring获取配置的三种方式
    目录前言Spring中获取配置的三种方式通过@Value动态获取单个配置通过@ConfigurationProperties+前缀方式批量获取通过Environment动态获取单个配...
    99+
    2024-04-02
  • iOS 两种方式设置状态栏
    ios9.0以前设置状态栏字体颜色 ///白色  [[UIApplication sharedApplication]setStatusBarStyle:UIStatusBarStyleLightContent]; ///黑色  [[UIA...
    99+
    2023-10-08
    ios cocoa macos
  • VC++中的字体设置方法详解
    VC++中static text字体改变 窗口都有2个和字体有关的函数:CWnd::GetFont()和SetFont(CFont*, BOOL);1)CFont* pFont = ...
    99+
    2022-11-15
    vc 设置字体
  • git windows 设置代理的三种方式
    随着Git在Windows平台上的广泛应用,如何设置Git客户端的代理成为一件很有实际意义的问题。本文将介绍在Windows环境下如何设置Git客户端的代理,并提供一些额外的提示。一、使用Git命令设置代理Git命令行中提供了设置代理的命令...
    99+
    2023-10-22
  • OpenFeign设置header的三种方式总结
    目录设置OpenFeign的FeignClient的Header信息1、在@RequestMapping注解里添加headers属性2、在方法参数前面添加@RequestHeader...
    99+
    2023-05-14
    openfeign header openfeign设置header openfeign使用
  • 详解redis集群的三种方式
    目录主从复制基本原理持久化开关配置哨兵模式基本原理启动配置故障迁移Cluster集群键分布模型配置cluster集群启动集群Redis三种集群方式:主从复制,哨兵模式,Cluster集群。 主从复制 基本原理 当新建立...
    99+
    2022-07-25
    redis集群 redis集群方式
  • mysql备份的三种方式详解
    一、备份的目的 做灾难恢复:对损坏的数据进行恢复和还原需求改变:因需求改变而需要把数据还原到改变以前测试:测试新功能是否可用 二、备份需要考虑的问题 可以容忍丢失多长时间的数据;恢复...
    99+
    2022-11-15
    mysql备份
  • 详解el-table表头文字换行的三种方式
    目录问题描述效果图三种方式的代码总结问题描述 表格中的表头一般都是不换行的,不过有时候在某些业务场景中,需要让表头的文字换行展示一下,我们先看一下效果图 效果图 三种方式的代码...
    99+
    2024-04-02
  • css设置字体样式的方法
    这篇文章主要介绍了css设置字体样式的方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。什么是csscss是一种用来表现HTML或XML等文件样式的计算机语言,主要是用来设计...
    99+
    2023-06-14
  • 详解mybatis三种分页方式
    目录前言一、Limit分页二、RowBounds分页(不推荐使用)三、Mybatis_PageHelper分页插件总结:前言 分页是我们在开发中绕不过去的一个坎!当你的数据量大了的时...
    99+
    2022-11-13
    mybatis分页
  • 设置session有效时间的三种方式
    目录设置session有效时间的三种方式方法一方法二方法三session详细解析(是否过期、失效时间)总结设置session有效时间的三种方式 session的默认有效时间是30分钟...
    99+
    2023-05-19
    设置session有效时间 设置session时间 session时间设置
  • 详解Springboot下载Excel的三种方式
    汇总一下浏览器下载和代码本地下载实现的3种方式。 (其实一般都是在代码生成excel,然后上传到oss,然后传链接给前台,但是我好像没有实现过直接点击就能在浏览器下载的功能,所以这次...
    99+
    2024-04-02
  • 详解SpringBoot禁用Swagger的三种方式
    目录摘要方法禁用方法1:禁用方法2:禁用方法3:摘要 在生产环境下,我们需要关闭swagger配置,避免暴露接口的这种危险行为。 方法 禁用方法1: 使用注解 @Value() 推荐...
    99+
    2024-04-02
  • win7字体尺寸怎么设置win7字体尺寸怎么设置方式详细介绍
    Win7字体大小一般在许多用户的印象中是没有去积极调整的,也因而许多用户认为系统软件中的字体样式调整必须依靠第三方工具才可以调整,事实上不是这样的,用户们可以通过系统软件的设定来实现改动字体大小,那样win7字体尺寸怎么设置呢,下边就给用户...
    99+
    2023-07-10
  • 详解C语言随机数设置的三种方式(保姆级教程)
    目录前言随机数设置三板斧第一式:rand函数第二式:srand函数第三式:time函数前言 本篇文章将为大家介绍在C语言中如何设置随机数,在设置随机数的过程中,大家可能会遇到以下问题...
    99+
    2022-11-13
    C语言随机数设置 C语言随机数
  • 详解IOS判断当前网络状态的三种方法
    在项目中,为了好的用户体验,有些场景必须线判断网络状态,然后才能决定该干嘛。比如视频播放,需要线判断是Wifi还是4G,Wifi直接播放,4G先提示用户。获取网络状态的方法大概有三种...
    99+
    2022-05-21
    IOS 网络状态 wifi 2g 3g 4g
  • Spring Bean三种注入方式详解
    在Spring容器中为一个bean配置依赖注入有三种方式:  使用属性的setter方法注入  这是最常用的方式;  使用构造器注入;  使用Filed注入(用于注解方式).Field注入是最常...
    99+
    2023-05-30
    spring bean 注入
  • java设计模式--三种工厂模式详解
    目录简单工厂代码:1.产品接口2.产品接口实现子类3.简单工厂类4.调用工厂5.测试工厂方法代码:1.工厂接口2.工厂实现子类3.产品接口4.产品实现子类5.调用6.测试1.产品接口...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作