亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統(tǒng) > iOS > 正文

iOS自定義字體顯示問題的完美解決方法

2019-10-21 18:21:59
字體:
供稿:網(wǎng)友

前言

本篇文章講的是在實際項目中碰到一款自定義字體在展示上出現(xiàn)問題,然后運用先進的蘋果爸爸的工具來解決這個問題的故事。

下面話不多說了,來一起看看詳細的介紹吧

1. 自定義字體出什么問題了?

設(shè)計師們的作品總是千變?nèi)f化,為了成就他們,作為程序員的我們只好滿足他們嘍。

所以當(dāng)設(shè)計師用到一款神奇的字體的時候,我是不會拒絕的,就像下面這個樣子:

iOS,字體

為了讓大家能更好的看到這個問題,我把 label 設(shè)置了一個背景色,label 的 width 和 height 都等于50?,F(xiàn)在,在 storyboard 中看起來是沒問題的,讓我們 Run 一下:

iOS,字體

對比 system font 字體的 label,明顯感覺這個 DINCondensedC 字體的內(nèi)容是偏上的?。ó?dāng)然不用對比也能發(fā)現(xiàn))。WTF!

2. 解決思路

2.1 既然是內(nèi)容偏上,那么是否和 content Mode 有關(guān)?

可惜的是,經(jīng)過嘗試,改變 contentMode 并不能對 UILabel 產(chǎn)生任何影響(實際繪制內(nèi)容中包含下方的空白)。

結(jié)論:不可行

2.2 繼承 UILabel 并重寫 drawRect ?利用 CoreText 繪制字體?

這兩種方案應(yīng)該是可行的,但是,為了這個小字體,用得著這么復(fù)雜的【計算字體大小】-【通過字體大小與 label 高度計算偏移量】-【用到這個字體的 label 統(tǒng)一換成 XXLabel 】流程嗎?

萬一哪天設(shè)計師說:來,咱們來個富文本,中間這幾個字用 DINCondensedC 字體,兩邊的字用 system 字體,那你不是要哭了?

結(jié)論:不可行

2.3 程序解決不了,那就用人解決吧

讓我們找到可愛的設(shè)計師,請他喝個下午茶,搓頓不錯的晚飯,帶他做個大保健,然后和他說:兄弟這個UI圖可以換個字體嗎... 算了成本有點高。

結(jié)論:不可行

2.4 可否從字體入手,自己修改字體?

既然字體有點不太正常,那么我們只能使出大招:自己動手修改這個字體。據(jù)說有一款 App:Glyphs 對于制作/修改字體來說,很強大!然后讓我們好好下載,靜靜等待吧。下載完畢打開這個【PT DIN Condensed Cyrillic.ttf】字體文件,沒想到這個軟件還收費,只能試用幾天。試用就使用吧,但是,這個字體里的每個字符我都要一個一個去改?作為程序員,不能忍!

結(jié)論:不可行

3. 最終的解決方案

最后還是得靠蘋果爸爸,大家的好爸爸。蘋果提供了一款字體修改工具:Apple Font Tool Suite。下面就讓我們用該工具來解決這個棘手的問題。

3.1 下載該工具

進入這里,滾到最下方,可以看到【Apple Font Tool Suite】,點擊下方的下載,下載一個適合自己 Xcode 版本,下載完成后無腦安裝。

3.2 獲取字體的信息文件

打開終端,輸入:ftxdumperfuser -t hhea -A d PT/ DIN/ Condensed/ Cyrillic.ttf,前面的【ftxdumperfuser -t hhea -A d 】為指令,后面的為你的字體文件路徑。最后回車,你會看到同級文件夾下回多出一個【DINCondensedC.hhea.xml】文件:

iOS,字體

3.3 修改字體文件中的信息

讓我們打開這個字體文件,你會看到:

<?xml version="1.0" encoding="UTF-8" standalone="no" ?><!DOCTYPE hheaTable [<!ELEMENT hheaTable EMPTY><!ATTLIST hheaTable versionMajor CDATA #IMPLIED	versionMinor CDATA #IMPLIED	ascender CDATA #IMPLIED	descender CDATA #IMPLIED	lineGap CDATA #IMPLIED	advanceWidthMax CDATA #IMPLIED	minLeftSideBearing CDATA #IMPLIED	minRightSideBearing CDATA #IMPLIED	xMaxExtent CDATA #IMPLIED	caretSlopeRise CDATA #IMPLIED	caretSlopeRun CDATA #IMPLIED	caretOffset CDATA #IMPLIED	metricDataFormat CDATA #IMPLIED	numberOfHMetrics CDATA #IMPLIED>]><!--	Data generated 	Sun Aug 13 18:51:10 2017	Generated by ftxdumperfuser build 347,		FontToolbox.framework build 257	Font full name: 'PT DIN Condensed Cyrillic'	Font PostScript name: 'DINCondensedC'--><hheaTable	versionMajor="1"	versionMinor="0"	ascender="700"	descender="-209"	lineGap="68"	advanceWidthMax="889"	minLeftSideBearing="-270"	minRightSideBearing="-22"	xMaxExtent="844"	caretSlopeRise="1"	caretSlopeRun="0"	caretOffset="0"	metricDataFormat="0"	numberOfHMetrics="234"	/>

沒錯這是個 XML 文件,它里面包含了字體的一些公共信息:

  • ascender:從字體的 baseLine 到最高處的距離
  • descender:從字體的 baseline 到最低點的距離
  • lineGap:印刷線的間距
  • ...

這里面的每一項信息,都可以從蘋果的:hheaTable文檔 這篇文檔中找到。文檔中可以看到,一款字體也是一個大工程。
今天我們要解決的,是【DINCondensedC】字體偏上的問題,因此,讓我們來調(diào)節(jié)調(diào)節(jié) ascender 這個屬性,將它從700改為900,然后保存文件。

3.4 將修改完的文件注入原 ttf 文件

打開終端,輸入:ftxdumperfuser -t hhea -A f PT/ DIN/ Condensed/ Cyrillic.ttf,注意這里 -A 后面的 d 已經(jīng)換成了 f ,回車。

3.5 替換原工程中的字體文件

切回我們的工程,替換原字體文件,Run 一下:

iOS,字體

問題已解決!

4. Demo地址

點擊這里直達倉庫

  • CustomFontIssues 為字體有問題的工程
  • CustomFontIssuesResolve 為已解決字體問題的工程

歡迎品嘗~

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對VEVB武林網(wǎng)的支持。


注:相關(guān)教程知識閱讀請移步到IOS開發(fā)頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
欧美精品黄色| 亚洲综合自拍网| 激情影院在线观看| 国产亚洲一区二区手机在线观看| 轻点好疼好大好爽视频| 国产91亚洲精品一区二区三区| 欧美xxxx中国| 夜夜嗨yeyeh| 日韩精品免费电影| 最新国产精品拍自在线播放| 日韩乱码人妻无码中文字幕| 91亚洲精华国产精华| 羞羞视频立即看| 国产精品久久三区| 亚洲欧美中文日韩在线v日本| 国产精品久久久久久久午夜| 少妇高潮一区二区三区99小说| 啊v视频在线一区二区三区| 国产日产久久高清欧美一区| 在线国产一区二区三区| 手机av在线播放| 免费无码毛片一区二三区| 成人影院在线观看视频| 在线观看免费播放网址成人| 性色一区二区| 久久久久久久久97| 综合久久国产| 国产一区二区三区精品欧美日韩一区二区三区| 亚洲天堂资源在线| 久久精品中文字幕电影| 亚洲一区三区视频在线观看| 爽死777影院| 欧美三级午夜理伦三级老人| 99精品欧美一区二区三区| 国产三级电影在线观看| 欧美日韩视频在线观看一区二区三区| 中文字幕日本不卡| 国产一区二区三区四区| 国产成人免费精品| 久99久在线视频| 亚洲热线99精品视频| 日本va欧美va国产激情| 99久久夜色精品国产网站| 日本二区在线观看| 男人通一通女人的下水道| 亚洲v日韩v综合v精品v| 另类成人小视频在线| 婷婷亚洲五月| 国产污污视频在线观看| 国产九一精品| 最近中文字幕免费观看| 97人妻精品一区二区三区视频| 国产精品视频免费一区二区三区| 亚洲不卡中文字幕| 色猫猫成人app| 国产在线久久久| 国内精品女同女同一区二区三区| 天天人人精品| 亚洲伦理一区| 韩日一区二区三区| 欧美视频不卡中文| 被陌生人带去卫生间啪到腿软| 国产黄人亚洲片| 中文字幕精品视频| 国产丝袜精品第一页| 欧美日韩视频不卡| 欧美久久综合性欧美| 亚洲av无码国产精品久久不卡| 伊人久久免费视频| 一区二区三区 在线观看视| 日本久久中文字幕| 亚洲自拍与偷拍| 在线成人免费| 黄av在线播放| 免费激情视频网站| 欧美精品v日韩精品v国产精品| 美女福利视频一区二区| 性色视频在线| 男人午夜视频在线观看| 四虎海外永久免费网址| 麻豆自创视频在线观看| 国产chinese精品一区二区| 国内成+人亚洲+欧美+综合在线| 久久精品国产亚洲777| 一区二区三区久久网| 免费成人看片网址| 日韩精品一区二区久久| 国产在线一级片| 亚洲性生活大片| 日韩一级片在线播放| 日本在线一区| 欧美黑人性受xxxx精品| 一道在线中文一区二区三区| 怡春院在线视频| 日本中文字幕电影在线免费观看| 国产欧美一区二区精品仙草咪| 精品国产午夜| 国产卡一卡二在线| 2018国产在线| 日韩手机在线观看视频| 中国老女人av| 性色视频在线| 亚洲av无码一区二区二三区| 麻豆免费在线观看视频| 国产欧美日韩精品丝袜高跟鞋| 久久久久久九九九九| 成人片在线免费看| 9久re热视频在线精品| 黄色网zhan| 理论不卡电影大全神| 成人片黄网站色大片免费毛片| 最新中文字幕av| 在线观看国产免费视频| www黄在线观看| 国产精品一区二区黑丝| 国产精品第一页在线观看| 91大学生片黄在线观看| 精品国产乱码久久久久久蜜坠欲下| 2018日日夜夜| 亚洲精品xxxx| 国产一区二区三区在线免费| 亚洲色图 校园春色| 国产精品极品在线观看| 五月天色婷婷综合| 九七伦理97伦理| 欧美做受xxxxxⅹ性视频| 欧美特级特黄aaaaaa在线看| 老牛国内精品亚洲成av人片| 欧美先锋资源| 久久久成人精品一区二区三区| 欧美精品免费看| 3751色影院一区二区三区| 久久精品国产99久久| 亚洲色图100p| www.国产福利| 国产精品视频专区| 久久99日本精品| 综合一区中文字幕| 免费av观看网址| 女人被爽到呻吟gif动态图下载| 欧美精品乱码久久久久久按摩| 久久福利一区二区| 国产真实有声精品录音| 日本视频三区| 无码国精品一区二区免费蜜桃| 偷拍视频一区二区三区| 精品久久久久久最新网址| 人妻换人妻仑乱| 九义人在线观看完整免费版电视剧| 亚洲欧美一区二区三区四区五区| 日韩电影在线观看一区二区| 波多野结衣绝顶大高潮| 免费成人深夜夜行网站视频| 亚洲精品成人在线| 国语精品中文字幕| 中文字幕av一区二区三区免费看| 午夜剧场成人观在线视频免费观看| 国产精品久久不卡| 欧美在线免费观看| 久久国产精品电影| 肉色超薄丝袜脚交69xx图片| 亚洲黄色免费三级| av永久免费观看| 2021国产精品视频| 国产精品三级a三级三级午夜| 亚洲午夜精品一区二区三区| 紧缚奴在线一区二区三区| www.欧美日本韩国| 蜜臀久久精品| 国产成人短视频在线观看| 91精品福利在线一区二区三区| 国产福利av网站| 国产欧美日韩中文久久| 日本成人黄色免费看| 99久久久无码国产精品性| 人人澡人人爽| 丰满少妇一区二区| 免费播放片a高清在线观看| 国产日韩一级二级三级| 亚洲精品国产精| 精品国产网站地址| 激情六月婷婷久久| 亚洲网色网站| 日韩av免费观影| av福利精品导航| 久久久精品麻豆| 欧美一区二区三区免费观看| 视频一区免费观看| 天堂av中文在线观看| 国产成人自拍一区| 免费毛片网站在线观看| 一区二区三区四区在线| 欧美三级一区二区| 日韩在线a电影| 亚洲一区二区国产| 日韩最新中文字幕| 18加网站在线| 欧美一区二区三区红桃小说| 色综合久久88色综合天天免费| 国产精品久久综合av爱欲tv| 黑人巨大40厘米重口ysn| 国产激情在线| 午夜免费视频网站| 中文字幕一区二区三区在线乱码| 最新亚洲精品国自产在线观看| aaa黄色大片| 一级黄色短视频| 免费在线一级片| 成人国产精品久久久网站| 国产亚洲欧美一级| 亚洲视频 欧美视频| 国产传媒在线| 国产youjizz在线| a级片免费观看| 日韩av在线资源| 欧美精品videossex性护士| 伊人狠狠色j香婷婷综合| 女人成午夜大片7777在线| 最新电影电视剧在线观看免费观看| 午夜精品一区二区三区视频免费看| 亚洲一区导航| 国产九色精品成人porny| 五十路在线观看| 91网站视频在线观看| 久久高清一区| 亚洲一区在线观看免费| 欧美怡春院一区二区三区| 欧美精品videos性欧美| 日本中文字幕电影在线观看| 国产一区清纯| 亚洲高潮女人毛茸茸| 丝袜人妻一区二区三区| 天天天天天天天干| 97影院理论片在线播放| 在线免费视频你懂得| 欧美大片网站在线观看| 福利视频一区| 国产又粗又黄又猛| 亚洲午夜久久久久久久久久久| 麻豆91av| 天堂男人av| 国产精品久久久久久久久久白浆| 亚洲欧美日韩视频一区| 日av中文字幕| 免费在线看一区| 国产不卡网站| 欧美一区二区三区婷婷月色| 神马电影网我不卡| 北条麻妃国产九九九精品小说| 国产盗摄视频在线观看| 欧美大成色www永久网站婷| 国产精品成人一区二区三区| 亚洲人成电影网站色www| 亚洲精品69| 欧美精品久久久久久| 国产女同一区二区| 国产一区二区成人久久免费影院| 91亚洲精华国产精华| 国产在线观看黄| 黄色大片在线观看| 亚洲一区电影在线观看| 欧美人与性动交| 欧美套图亚洲一区| 在线欧美日韩| 精品国产一区二区三区成人影院| av电影免费在线看| 亚洲巨乳在线| 国产精品综合色区在线观看| av一区二区三区免费观看| 狂野欧美性猛交xxxxx视频| 美女露出粉嫩尿囗让男人桶| 国产精品酒店视频| 日韩欧美亚洲另类制服综合在线| 日韩不卡的av| 法国空姐电影在线观看| 国产精品久久乐| 欧美激情 一区| 传媒视频在线| 男人插入女人视频| 性一交一乱一精一晶| 亚洲欧美高清视频| 国产精品亚洲电影久久成人影院| 九色精品视频在线观看| 亚洲在线免费观看| 国产永久精品大片wwwapp| 中文字幕网站视频在线| 四虎在线免费观看| 第九色区aⅴ天堂久久香| 欧美日韩免费区域视频在线观看| av影片免费在线观看| 黄色片网站免费在线观看| 欧美人成在线观看网站高清| 亚洲在线播放| 被男同事摸的水好多| 久久成人人人人精品欧| 黄大色黄女片18第一次| 久久免费视频6| 久久国产露脸精品国产| 日本女人高潮视频| 在线亚洲免费| h视频免费高清在线观看| 欧美福利视频一区二区| 你懂的免费在线观看| 在线播放 亚洲| 深夜成人影院| 久久久久性色av无码一区二区| 在线成人高清不卡| 6699久久国产精品免费| 久久成年人视频| 3atv一区二区三区| 国产一级黄色大片| 日韩亚洲欧美综合| av色男福利网| 日韩一区av| 亚洲精品久久久久国产| 久久精品人人做人人综合| 动漫h在线观看| 美日韩精品视频| aa级大片欧美| 中文字幕在线中文字幕二区| 日本少妇久久久| 自拍偷拍福利视频| 久久精品视频日本| 亚洲少妇中文字幕| 国产麻花豆剧传媒精品mv在线| 小说区亚洲自拍另类图片专区| 成人3d动漫一区二区三区91| 九九精品在线播放|