iOS UIFont-真香警告之字体管理类

UIFont 系列传送门
第一弹加载本地字体:iOS UIFont-新增第三方字体
第二弹加载线上字体:iOS UIFont-实现三方字体的下载和使用
第三弹搭建字体管理类:iOS UIFont-真香警告之字体管理类

请添加图片描述

前言

不知道友们是否有过这种经历,项目已经迭代了很多版本,项目中的文件已经上千个了,诶 恰巧这个时候,产品大大给你来啦这么一个需求,要新增一个全局切换字体的功能,另外字号大小也要跟随屏幕按照一定规则实现自适应。
要实现这个需求,首先写一个设置字体的扩展方法,然后将之前项目中设置字体的地方全部替换成新增的方法,这一步替换工作不能全局替换,干这种简单的重复的毫无技术含量的体力工作,哎 一言难尽!!!
所以,无论是老项目还是新项目,我真的建议大家都有意识地用一个字体管理类,封装一个统一的设置字体方法供项目使用,当某一天产品要对字体开始动刀的时候,我相信你会感谢当初听了我的建议的那个自己。

思路

给UIFont新增一个扩展方法,参考UIFont的系统构造方法来自定义我们的字体扩展方法。fontName将string类型改用枚举,同理fontsize

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/780144.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

uniapp数组合并函数使用几录

let that { listAll: [1, 2, 3] }; let data [4, 5, 6]; let mergedArray that.listAll.concat(data); console.log(mergedArray); // 输出: [1, 2, 3, 4, 5, 6] console.log(that.listAll); // 输出: [1, 2, 3],原始数组没有改变 唯有美景,可以抚…

基于SSM+Jsp+Mysql的医院远程诊断系统

开发语言:Java框架:ssm技术:JSPJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包…

故障诊断 | 基于FTNN网络模型的故障诊断(Pytorch)

效果分析 基本介绍 FTNN是一种基于神经网络的故障诊断模型,它旨在识别和定位系统中的故障。使用已标记的数据集对FTNN模型进行训练。标记的数据集包括系统在正常和故障状态下的数据,以及对应的故障标签。通过算法和优化方法,调整网络参数以最小化预测误差。使用独立的测试数…

linux三剑客之grep

grep命令 基本语法 示例 搜索文件 example.txt 中包含单词 "example" 的所有行: grep -v "example" example.txt 计算文件 example.txt 中包含 "example" 的行数: grep -c "example" example.txt 显示 example.txt 中包含 "e…

SQLite中的隔离(八)

返回:SQLite—系列文章目录 上一篇:SQLite版本3中的文件锁定和并发(七) 下一篇:SQLite—系列文章目录 数据库的“isolation”属性确定何时对 一个操作的数据库对其他并发操作可见。 数据库连接之间的隔离 如果使用两个不…

Flume面试题及参考答案

在大数据领域,Flume是一个不可或缺的工具,它负责可靠地收集、聚合和移动大量日志数据。作为一名大数据架构师,掌握Flume的工作原理和最佳实践对于构建高效的数据处理流水线至关重要。本文将深入探讨一系列Flume面试题,并提供详尽的参考答案,以帮助读者在面试中表现出色,并…

LeetCode-2908. 元素和最小的山形三元组 I【数组,前后缀分解】

LeetCode-2908. 元素和最小的山形三元组 I【数组】 题目描述&#xff1a;解题思路一&#xff1a;暴力解法&#xff0c;三个for循环解题思路二&#xff1a;优化&#xff0c;这里注意到1 < nums[i] < 50&#xff0c;其实如果有山形三元组&#xff0c;那么result是一定小于等…

汽车电子行业知识:汽车电子领域包含哪些技术

汽车电子行业涉及到许多方面的知识&#xff0c;包括但不限于&#xff1a; 汽车电子控制单元&#xff08;ECU&#xff09;&#xff1a;负责监控和控制车辆的各种系统&#xff0c;如发动机控制单元、制动系统控制单元、空调系统控制单元等。汽车传感器技术&#xff1a;包括温度传…

Luigi任务调度框架学习2:运行每一个Task,避免因判定完成导致跳过执行Task主程序

在上一篇Luigi的线性调度文章中&#xff08;Luigi任务调度框架学习1&#xff1a;线性调用流程&#xff09;&#xff0c;我们知道Task运行的时候&#xff1a; 每个任务是否完成有两次判定&#xff0c;即&#xff1a;进行判定(未完成) 》运行def run(self)函数 》进行判定(完成) …

国产暴雨AI服务器X3418开启多元自主可控新篇章

在当前数字化转型的大潮中&#xff0c;算力作为新质生产力的重要动力引擎&#xff0c;对推动经济社会发展起着关键作用。尤其在人工智能领域&#xff0c;随着高性能、安全可控的AI算力需求持续攀升&#xff0c;国产化服务器的研发与应用显得尤为迫切。 作为国内专业的算力基础…

mysql5.7 源码分析--初始化

集中在sql\mysqld.cc文件的mysqld_main函数中&#xff08;&#xff09;&#xff1a; 主程序入口 在sql\main.cc文件中&#xff1a; int main(int argc, char **argv) {return mysqld_main(arg, argv); } 一、mysql为了跨平台&#xff0c;对win32系统做了单独的初始化&#x…

【ENSP】交换机和路由器之间实现静态路由

1.概念 三层交换机只能在Vlanif逻辑口配置iP地址 路由器的每一个端口都是另外一个网段 2.实现方法 交换机允许对应vlan通行&#xff0c;配置vlanif的ip地址&#xff0c;做静态路由 路由器&#xff0c;进接口配置对应的ip&#xff0c;路由器和交换机相连的口&#xff0c;进入他的…

文心一言 VS 讯飞星火 VS chatgpt (225)-- 算法导论16.3 7题

七、推广赫夫曼算法&#xff0c;使之能生成三进制的码字(即码字由符号0、1、2组成)&#xff0c;并证明你的算法能生成最优三进制码。如果要写代码&#xff0c;请用go语言。 文心一言&#xff1a; 推广赫夫曼算法以生成三进制码字需要对算法进行一定的修改&#xff0c;确保在每…

JavaScript是如何实现页面渲染的

JavaScript实现页面渲染主要涉及到对DOM的操作、样式的修改以及与后端数据的交互。以下是JavaScript实现页面渲染的主要步骤和方式&#xff1a; 一、DOM操作 创建和修改元素&#xff1a;JavaScript可以使用document.createElement()来创建新的DOM元素&#xff0c;使用appendC…

力软框架打开新的对话框,点击对话框确认按钮的事件AcceptClick的方法

// 原来在力软框架下&#xff0c;点击哪个确认按钮的时候 top.frames[iframeId].AcceptClick直接用这个方法就可以了 &#xff0c;那个方法是直接返回方法的但是不知道是什么情况。如图二所示。死活就返回了ifram标签不知道是什么原因&#xff0c;就获取不到对话框里边自己定义…

求交错数列前n项和:输⼊⼀个正整数n,计算交错序列1-2/3+3/5-4/7+5/9-6/11+... 的前n项之和。试编写相应程序。

#include <stdio.h> #include <string.h> int main() { // 求交错数列前n项和&#xff1a;输个正整数n&#xff0c;计算交错序列1-2/33/5-4/75/9-6/11... 的前n // 项之和。试编写相应程序。 int sign 1; float sum 0; int n; scanf("…

nginx界面管理工具之nginxWebUI 搭建与使用

nginx界面管理工具之nginxWebUI 搭建与使用 一、nginxWebUI 1.nginx网页配置工具 官网地址: http://www.nginxwebui.cn 源码地址&#xff1a;https://git.chihiro.org.cn/chihiro/nginxWebUI 2.功能说明 本项目可以使用WebUI配置nginx的各项功能, 包括http协议转发, tcp协议…

springboot+vue+elementui保存时间类型数据报错JSON parse error

1.目前环境条件&#xff1a; ①mysql数据库中存储的时间字段类型为&#xff1a;datetime ②&#xff1a;springboot中存储的类型为&#xff1a;LocalDateTime ③前端代码&#xff1a; <el-col :span"24"><el-form-item><div slot"label"…

帆软报表踩坑日记

最近公司项目要是使用报表&#xff0c;公司使用的是帆软这个国产软件&#xff0c;自己也是学习使用&#xff0c;在使用的过程中记一下问题以及解决方式 公司使用的是帆软8这个版本&#xff0c;比较老了。 首先是表格中的扩展&#xff0c;就是当我们根据数据库查询数据然后放到表…

PageHelper分页错乱

PageHelper.startPage(qryOrderDetailParam.getPageNum(), qryOrderDetailParam.getPageSize()); 在使用分页插件时&#xff0c;如果sql的最后面跟着类似这个的sql OFFSET 0 ROWS FETCH NEXT #{taskNum} ROWS ONLY, 就是自己本身也有限制条数的逻辑&#xff1b; 双重限制逻辑…