【iOS】自定义字体
文章目录
- 前言
- 一、下载字体
- 二、添加字体
- 三、检查字体
- 四、使用字体
前言
在设计App的过程中我们常常会想办法去让我们的界面变得美观,使用好看的字体是我们美化界面的一个方法。接下来笔者将会讲解App中添加自定义字体

一、下载字体
我们要使用自定义字体,首先第一步肯定是下载字体,下载的字体格式一般是ttf或otf格式,笔者这里推荐几个字体下载网站:
中文字体网站
英文字体网站
二、添加字体
-
下载完成后就需要我们将字体添加到我们的程序中,字体添加与我们的图片添加类似,都是将文件拖到我们的工程中,这里唯一需要特别注意的是: 一定要勾选这一项才能成功在我们的工程中使用字体

-
然后打开我们的Info文件:

-
向文件中添加“Fonts provided by application”,它是 Info.plist 文件中的一个键,用于指定应用程序提供的自定义字体。

再向键中添加我们的字体名称,记得一定要带上后缀

三、检查字体
向程序中添加下列代码,获取我们的字体名称检查我们的字体是否已经被添加到我们的工程中
之所以要这么做是因为我们的字体文件名有可能与我们添加进工程的字体名有出入,需要用这个方法来获取我们工程中的字体名
for(NSString *familyname in [UIFont familyNames]){NSLog(@"family: %@",familyname);for(NSString *fontName in [UIFont fontNamesForFamilyName:familyname]){NSLog(@"----font: %@",fontName);}NSLog(@"--------------");}
可以看到我的字体已经被添加进我的工程中

四、使用字体
我们使用+ (nullable UIFont *)fontWithName:(NSString *)fontName size:(CGFloat)fontSize; 方法来使用我们的自定义字体,fontname就是我们通过代码查找到的字体名,fontSize是我们的字体大小
我们给出我们的示例代码:

运行效果:

通过上述步骤,我们就实现了在工程中添加我们的自定义字体
相关文章:
【iOS】自定义字体
文章目录 前言一、下载字体二、添加字体三、检查字体四、使用字体 前言 在设计App的过程中我们常常会想办法去让我们的界面变得美观,使用好看的字体是我们美化界面的一个方法。接下来笔者将会讲解App中添加自定义字体 一、下载字体 我们要使用自定义字体&#x…...
WPF实战学习笔记06-设置待办事项界面
设置待办事项界面 创建待办待办事项集合并初始化 TodoViewModel: using Mytodo.Common.Models; using Prism.Commands; using Prism.Mvvm; using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Linq; using Sy…...
推荐几个不错的免费配色工具网站
1. Paletton专业的配色套件,提供色轮理论及调色功能。可查看配色预览效果。 网站:http://paletton.com 2. Colormind一个基于机器学习的智能配色工具。可以一键生成配色方案。 网站:http://colormind.io 3. Adobe ColorAdobe官方的配色工具,可以从图片中取色,也可以随机生成配色…...
gitee page发布的静态网站,无法播放目录中的mp4视频
起因是希望在gitee上部署静态网站,利用three.js VideoTexture 环境贴图播放视频。 但是试了多几次 mp4均提示404,资源无法获取; 找了很多方案,最后发现将视频转为ogv 就可以完美适配了; mp4转ogv 附threejs使用ogv进…...
opencv-26 图像几何变换04- 重映射-函数 cv2.remap()
什么是重映射? 重映射(Remapping)是图像处理中的一种操作,用于将图像中的像素从一个位置映射到另一个位置。重映射可以实现图像的平移、旋转、缩放和透视变换等效果。它是一种基于像素级的图像变换技术,可以通过定义映…...
SkyWalking链路追踪中span全解
基本概念 在SkyWalking链路追踪中,Span(跨度)是Trace(追踪)的组成部分之一。Span代表一次调用或操作的单个组件,可以是一个方法调用、一个HTTP请求或者其他类型的操作。 每个Span都包含了一些关键的信息&am…...
【前端知识】React 基础巩固(三十一)——Redux的简介
React 基础巩固(三十一)——Redux 一、Redux是个纯函数 概念 纯函数(确定的输入一定产生确定的输出,函数在执行过程中不产生副作用): 在程序设计中,若一个函数符合以下条件,那么这个函数就被称为纯函数…...
拦截Bean使用之前各个时机的Spring组件
拦截Bean使用之前各个时机的Spring组件 之前使用过的BeanPostProcessor就是在Bean实例化之后,注入属性值之前的时机。 Spring Bean的生命周期本次演示的是在Bean实例化之前的时机,使用BeanFactoryPostProcessor进行验证,以及在加载Bean之前进…...
RT thread 之 Nand flash 读写过程分析
文章目录 前言:什么是Nand Flash?1、Nand Flash 读取步骤2、从主存读到Cache2.1 在标准spi接口下读取过程2.2 测试时序(SPI频率30MHz) 3.从Cache读取数据3.1在标准spi接口读取过程测试时序 前言:什么是Nand Flash&…...
独立站最全出单营销指南,新手卖家赶紧学起来吧!
这是一个需要投入大量时间和精力的挑战,但只有经过筛选在众多品牌和渠道中找到最适合自己的营销策略,才能成功。 新手商家经常会发现自己有很多可以改进的地方:品牌的颜色、字体以及其他一些细节。但真正走向成熟的商家会意识到,…...
Git移除commit过的大文件
前言:在提交推送本地更改至仓库时,误将大文件给提交了,导致push时报错文件过大,因此需要将已经commit的大文件移除后再push 若已知要删除的文件或文件夹路径,则可以从第4步开始 1.对仓库进行gc操作 $ git gc 2.查询…...
再见 Spring Boot 1.X ,Spring Boot 2.X 走向舞台中心
2019年8月6日,Spring 官方在其博客宣布,Spring Boot 1.x 停止维护,Spring Boot 1.x 生命周期正式结束。 其实早在2018年7月30号,Spring 官方就已经在博客进行过预告,Spring Boot 1.X 将维护到2019年8月1日。 1.5.x 将会…...
Jsonp劫持
JSONP 介绍 jsonp是一种协议,准确的说,他是json的一种使用模式,为了解决Json受同源策略限制的问题。 基本语法 JSONP的基本语法为:callback({“name”:”test”, “msg”:”success”}) 常见的例子包括函数调用(如…...
STM32CubeIDE(串口)
目录 一、轮询模式 1.1 配置USART2为异步模式 1.2 500ms发送一次消息 1.3 通信结果 1.4 串口控制LED 二、中断收发 2.1 开启中断 2.2 中断发送接收 2.2.1 中断发送只需要调用接口 2.2.2 中断接收 2.3 实验结果 三、DMA模式与收发不定长数据 3.1 DMA通道配置 3.2 DMA…...
Python编程很简单,四步菜鸟到高手(文末送书5本)
🤵♂️ 个人主页:艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞Ǵ…...
Labview串口通信MSComm实现串口收发
文章目录 前言一、什么是 MSComm二、MSComm 控件下载三、MSComm 控件的注册四、使用 MSComm 控件1、前面板放置控件2、MSComm 的常用属性3、MSComm 控件的事件 五、实现串口收发1、搭建虚拟串口2、发送测试3、接收测试4、后面板核心程序框图 六、程序自取 前言 本文介绍使用 A…...
字节跳动 EB 级 Iceberg 数据湖的机器学习应用与优化
深度学习的模型规模越来越庞大,其训练数据量级也成倍增长,这对海量训练数据的存储方案也提出了更高的要求:怎样更高性能地读取训练样本、不使数据读取成为模型训练的瓶颈,怎样更高效地支持特征工程、更便捷地增删和回填特征。本文…...
CentOS 安装Mysql8
1.检查是否已经安装mysql,停止mysql服务,删除mysql ps -ef | grep -i mysql systemctl stop mysqld rpm -e mysql 2.配置仓库 更新秘钥 rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022 安装mysql8的yum源 rpm -Uvh https://dev.mysql.…...
3-Linux实操
Linux实践操作 开关机、重启、用户登陆注销关机&重启用户登陆和注销 用户管理添加用户修改用户密码删除用户查询用户信息切换用户查看当前用户用户组的添加和删除用户和组相关文件 实用指令指定运行级别init 命令帮助指令文件目录类时间日期类搜索查找类🔍压缩和…...
Yarn 集群的架构和工作原理
Yarn 的基本设计思想是将 MapReduce V1 中的 JobTracker 拆分为两个独立的服务:ResourceManager 和 ApplicationMaster。 ResourceManager 负责整个系统的资源管理和分配,ApplicationMaster 负责单个应用程序的管理。 ResourceManager RM 是一个全局的资…...
Kevin喜欢零(困难版本)【牛客tracker 每日一题】
Kevin喜欢零(困难版本) 时间限制:1秒 空间限制:256M 网页链接 牛客tracker 牛客tracker & 每日一题,完成每日打卡,即可获得牛币。获得相应数量的牛币,能在【牛币兑换中心】,换取相应奖品࿰…...
2026年降AI后文本可读性变差怎么办:质量修复和自查方法
2026年降AI后文本可读性变差怎么办:质量修复和自查方法 提交前三小时查了AI率,82%。 当时脑子嗡的一声。冷静下来开始查资料找方法,前后折腾了大半天,最后靠嘎嘎降AI(www.aigcleaner.com)救回来了&#x…...
避坑指南:用ArcGIS批量裁剪TIFF时,如何确保输出范围和命名不混乱?
ArcGIS批量裁剪TIFF实战:精准控制输出范围与命名的进阶技巧 当你面对数百个TIFF文件需要批量裁剪时,ArcGIS的ModelBuilder本应是效率神器,但实际使用中却常常遇到输出范围错乱、命名重复甚至文件丢失的窘境。我曾在一个遥感数据处理项目中&am…...
ai辅助开发新体验:在快马平台生成复杂算法代码,赋能idea社区版项目
今天想和大家分享一个特别实用的开发体验:如何用AI辅助快速生成复杂算法代码,再无缝导入IDEA社区版进行调试优化。整个过程就像有个编程助手在身边,效率提升非常明显。 需求背景 最近在做一个需要动态计算数学表达式的项目,要求…...
MogFace-large部署案例:嵌入式AI盒子(Jetson Orin)上轻量运行方案
MogFace-large部署案例:嵌入式AI盒子(Jetson Orin)上轻量运行方案 1. 项目背景与价值 人脸检测技术在实际应用中面临着一个关键挑战:如何在资源受限的嵌入式设备上实现高精度实时检测。传统方案往往需要在精度和速度之间做出妥协…...
TCL脚本中info命令与文件路径操作的实战解析
1. TCL脚本中info命令的核心作用 在TCL脚本开发中,info命令就像是一个万能工具箱,它能让你随时查看解释器的内部状态。这个命令特别适合需要动态获取脚本信息的场景,比如你想知道当前执行的脚本路径、检查某个变量是否存在,或者查…...
3大场景攻克B站视频下载:Downkyi全功能实战指南
3大场景攻克B站视频下载:Downkyi全功能实战指南 【免费下载链接】downkyi 哔哩下载姬downkyi,哔哩哔哩网站视频下载工具,支持批量下载,支持8K、HDR、杜比视界,提供工具箱(音视频提取、去水印等)…...
华为网络设备高危命令大全
在网络运维现场,最怕的不是设备坏,而是“人手滑”。 很多事故不是硬件问题,也不是链路问题,而是一条命令敲下去,业务直接“蒸发”。 我带过不少一线工程师,有个共同问题: 命令会用,但不知道哪些“不能随便用”。 这篇文章,不讲基础、不讲概念,直接把华为网络设备中…...
别再手动算脉冲了!用STM32的TIM编码器接口实现AB相编码器测速(附四倍频配置)
STM32硬件编码器接口实战:四倍频测速与电机控制优化 在嵌入式运动控制系统中,编码器测速的精度和实时性直接影响整个系统的性能表现。传统的中断计数方式虽然直观,但存在CPU占用率高、响应延迟等问题。而STM32系列微控制器内置的硬件编码器接…...
【无标题】视频号下载神器来了!可指定视频下载,支持批量解析下载
我用夸克网盘给你分享了「链接:https://pan.quark.cn/s/46da937e05b8支持下载指定视频支持批量下载视频支持下载直播视频支持识别已经下载过的视频,不重复下载...
