产品设计之动态字体大小

简介: iOS的“设置” –> “显示与亮度” –> “文字大小”,可以修改默认的系统字体大小,当修改之后,系统自带的应用如信息等都会随之改变,手机QQ会随之发生变化: 而微信的字体大小并不会随系统的字体大小改变而改变,微信自己有设置文字大小的功能,在“我” –> “设置” –> “通用”-> “字体...

iOS的“设置” –> “显示与亮度” –> “文字大小”,可以修改默认的系统字体大小,当修改之后,系统自带的应用如信息等都会随之改变,手机QQ会随之发生变化:

而微信的字体大小并不会随系统的字体大小改变而改变,微信自己有设置文字大小的功能,在“我” –> “设置” –> “通用”-> “字体大小”中进行设置

 

iOS中如果想做到跟随系统默认的字体大小改变而改变,怎么实现呢,步骤如下:

1、设置字体的新式为UIFontTextStyle某个选项;

2、注册通知,监听字号改号改变时修改字体然后重新更新一下布局;

- (id)initWithStyle:(UITableViewStyle)style {
    if (self = [super initWithStyle:style]) {
        if (IOS_VERSION >= 7.0)
        {
            [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleContentSizeCategoryDidChanged:) name:UIContentSizeCategoryDidChangeNotification object:nil];
        }
    }
}
 
//
- (void)handleContentSizeCategoryDidChanged:(NSNotification *)notification
{
    //update font size/frame and view
}
 
更多细节可参考:
 
iOS中如果想实现字体大小随UILabel的宽度进行自适应,可使用adjustsFontSizeToFitWidth,更多详情可参考这篇文章: 详解UILabel的adjustsFontSizeToFitWidth值

 

Android默认是跟随系统字体大小改变而改变的,那如果想避免受系统字体大小的影响,如何处理(4.0开始,系统提供修改字体大小功能)?

方法一、将TextView的字体单位由sp改为dp;

方法二、在自定义的Activity中重写getResources方法;

@Override
public Resources getResources() {
    Resources res = super.getResources();
    Configuration conf = new Configuration();
    conf.setToDefaults();
    res.updateConfiguration(conf, res.getDisplayMetrics());
    return res;
}
 
更多详情可参考:
 
 
那React Native呢?写这篇文章也是因为发现了默认RN是跟随系统自带的字体大小变化而变化的,当时还比较惊讶,后来查文档发现默认就支持了,如果想禁用直接设置属性allowFontScaling为false(默认为true)
 
而如果你想根据不同的屏幕大小使用不同的字号,可以参考这里: how to set font size for different IOS devices in react native

目录
相关文章
|
编译器 测试技术 开发工具
让你的 XCode 编译链接耗时减半
让你的 XCode 编译链接耗时减半
1720 0
让你的 XCode 编译链接耗时减半
|
iOS开发
iOS 富文本添加点击事件
iOS 富文本添加点击事件
1890 0
iOS 富文本添加点击事件
|
Linux Python
百度搜索:蓝易云【Centos 7系统安装python 3.9.10详细教程。】
现在,你已经成功在CentOS 7系统上安装了Python 3.9.10。你可以使用 `python3.9`命令来运行Python 3.9.10版本的解释器。请根据实际需要进行配置和使用。
526 0
|
人工智能 自然语言处理 算法
国产新型AI编程助手—DevChat AI插件在VSCode中的应用
国产新型AI编程助手—DevChat AI插件在VSCode中的应用
628 0
|
Android开发 架构师
Android:动态更换桌面ICON
前言 当老板和产品提出这种需求的时候,我并不感到害怕,心里甚至有点窃喜,因为大厂基本都有这种效果,那肯定也好实现。当我一查资料的时候,发现情况不容乐观。
4576 0
|
11月前
|
SQL 运维 监控
南大通用GBase 8a MPP Cluster Linux端SQL进程监控工具
南大通用GBase 8a MPP Cluster Linux端SQL进程监控工具
|
8月前
|
运维 测试技术
当一个按键“摆烂”时,需要更换整个键盘吗?
键盘按键失灵时,别急着更换整个键盘!本文教你通过三步解决:诊断病因、对症下药、预防复发。首先进行“键盘体检”,包括跨设备验证、软件驱动测试、BIOS检测及硬件检查,找出是污垢、物理损坏还是电路故障。接着针对问题提供治疗方案,如更新驱动、清洁键槽或更换零件。最后提醒大家优先排查软件问题,温柔清洁,理性对待物理损坏,并建议选购可维护性强的键盘。记住,善待键盘,远离零食屑,让输入更顺畅!
449 3
|
数据采集 监控 数据可视化
场景解决方案丨突破成本限制,中小企业如何快速搭建后台管理系统
在信息化时代,业务数据激增及技术成本下降推动了数字化转型。大型企业凭借经济和技术优势巩固市场地位,而中小企业则需寻找新的增长点以保持竞争力。企业后台管理系统涵盖行政、财务、人力资源等功能,旨在提高运营效率和优化资源配置。然而,中小企业面临预算有限、开发时间紧迫、技术资源匮乏及维护成本高昂等问题。易知微提供的解决方案通过低代码平台简化配置操作,覆盖多种应用场景,如办公OA、采购管理和物流运输等,助力中小企业快速搭建后台管理系统,降低成本并提升效率。
|
安全
计算机硬件升级增加内存(RAM)
【8月更文挑战第5天】
1525 3
|
安全 Linux 网络安全
Linux加强篇009-使用ssh服务管理远程主机
山重水复疑无路,柳暗花明又一村
507 0
Linux加强篇009-使用ssh服务管理远程主机