zoukankan      html  css  js  c++  java
  • 浅谈设置字体大小

    浅谈设置字体大小

    前言

    如果设置字体用的是[UIFontsystemFontOfSize:20.0];这种方式 看一下文档会发现这里的后边的字体的参数单位是point即pt

    那么如果是UI设计师给我们的标注也是pt为单位的话直接设置就好(有一个基准,别的机型做相应的增量处理),如果是给我们的标注是px(像素)的话,我们该要怎么写呢

    举个例子

    比如说是iPhone6的机型(这里暗含所有的scale为2的机型),字体30px 那么设置字体的时候写多少合适呢?
    见到网上给出了一个公式是px ÷ 96 x 72 = pt(为了这个特意和之前的同事讨论了相关问题)
    但是自己按照这个公式设置的字体显示出来又太大了
    后来找找UI设计师对了一下 让他测量一下我设置的文字的像素(他用PS测量的)
    但是结果是不对的,字体确实不对
    如果是按照30 / 2 = 15  (这里的2指的scale)目测感觉又太小了
    不过经过测量以后和设计稿更相近一些
    30px情况下对于scale为2的暂且设置为15
    那么对于哪些scale为3的时候应该设置为10呢?当设置为10的时候文字显然又太小了后来也是设置为15
    这里边自然有别的更多的内容(比如说ppi)还不明确的
     
    最终结果
    对于scale为2 和scale为3 的屏幕比较大的设置为同样的字体15pt
    那么对于小一些的屏幕的手机入5 5s适当的把字体调小一些
    这个和我之前的一篇博客是有关联的:

    Objective-C写出Json文件(可作配置文件)

    再次更改:

    对于iOS设备而言关于px与pt之间的转换,其实px * 3 / 4 = pt 是正确的,这一点我后来测试之后确实是发现大约数值是对的,而且之前也在github或者是知乎上也确实有人这么说。当然,我们设置好了之后,也最好记得给设计师看一眼是否还需要调整,这个内容大家去沟通就是了,注意有的时候,如果说有的标注图和自己按照标注图做出来的效果,如果是相差太多的话,一定要记得自己量一下,和对方沟通一下。在设置这个字体的大小的时候有时候是需要设置成一个有参数的宏的

    比如说,如果UI设计师给的图示px标注的字体,那么说我们在设置字体的值的时候,也就是可以写作

    #define WWIOSFont(font) floor(font * 3.0f / 4.0f) * WWHSCALE

    这里的WWHSCALE指的是高度的比例  ,这个就会和当前设备高度有关系了。

    比如说设计稿是6的尺寸做的,高度是667pt的话那么换做了其他的设备的话,

    WWHSCALE 就是 [UIScreen mainScreen].bounds.size.height / 667.0f

    其实感觉在做这些运算的时候难免会有一些精度的损耗。

    当然对于设置其他的视图的位置和尺寸的话,其实也是使用的pt的,不过这个时候和字体是不一样的,对于屏幕上的UIView来说的话,这些px和pt之间就是和屏幕分辨率scale这些有关系的。[[UIScreen mainScreen]scale]

    然后的话,比如说我们用的是6的机型做的设计稿,那么,如果是px标注的图那么   px/scale * WWHSCALE 这样的话,y或者高度上就处理好了,这部分高度的处理需要注意的是,对于iPhoneX需要特殊对待。毕竟她和iPhone6,6s,7,8等一个宽度,高度确实812pt

    宽度和x上同理做相应的处理

     

    如有错误 敬请指正

    如需转载 请注明出处 谢谢

     
     
    我会不定期分享 iOS 相关技术文章
  • 相关阅读:
    SDN第二次上机作业
    SDN第二次作业
    SDN第一次上机作业
    个人作业-软件产品案例分析
    pandas之Series
    pandas简答介绍
    python爬取英文名
    python爬取动态网页
    python画树
    Python存储数据的方式
  • 原文地址:https://www.cnblogs.com/ITCoderW/p/7523573.html
Copyright © 2011-2022 走看看