關(guān)于iconfont的使用心得

前言:寫這篇文章純粹是記錄自己的使用過程以及一些疑問。iconfont之前一直是作為web頁面替換按鈕圖片的方案,最近兩年隨著移動端的興起,也漸漸有了相同的替換方案,這里推薦一個阿里的免費(fèi)iconfont制作圖庫,可以在上面在線制作按鈕。

在這之前,想先寫點(diǎn)iconfont的優(yōu)缺點(diǎn)分析一下。
優(yōu)點(diǎn):

  • 1.也是用iconfont的直接原因,省時省力,大概就是不需要再往xcode里面拉X2,X3的圖片了吧,也給美工節(jié)省了許多切圖的時間。

  • 2.矢量像素,不需要適配。

  • 3.節(jié)約空間,很多頁面,按鈕多起來,整個api文件打包會很大,而iconfont是矢量的像素文件,所有的iconfont打包也還沒有一張png圖片大。
    缺點(diǎn):

  • 1.按鈕只能是純色,沒法弄成一半黃一半綠的(ttf文件只能是一種顏色)。

  • 2.忘記了,想起來再補(bǔ)充吧.

首先,使用iconfont還是挺簡單的。只需要找一個iconfont制作網(wǎng)站,可以自己(美工)制作,也可以用別人做好的一套。這里用阿里的舉例子,選擇自己要用到的icon,然后加入購物車。再點(diǎn)擊右側(cè)的下載代碼

image.png

打開下載的壓縮包,里面會有很多字體文件的格式,我們Xcode能識別出來的是帶.ttf后綴的。like this

image.png

將其拖入你的項(xiàng)目文件,并且要確保在項(xiàng)目的build Phases里面包含有它

image.png

另外,在項(xiàng)目的plist文件里面也需要添加字段,用來識別ttf文件

image.png

第二步:使用IconFont字體:

UILabel * label = [[UILabel alloc] initWithFrame:self.view.bounds];
UIFont *iconfont = [UIFont fontWithName:@"uxIconFont" size: 34];
label.font = iconfont;
label.text = @"\U00003439 \U000035ad \U000035ae \U000035af \U000035eb \U000035ec";
[self.view addSubview: label];。

這里有兩個地方注意下:
創(chuàng)建 UIFont 使用的是字體名,而不是文件名;
文本值為 8 位的 Unicode 字符,我們可以打開 demo.html 查找每個圖標(biāo)所對應(yīng)的 HTML 實(shí)體 Unicode 碼,比如: "店" 對應(yīng)的 HTML 實(shí)體 Unicode 碼為:0x3439 轉(zhuǎn)換后為:\U00003439 就是將 0x 替換為 \U 中間用 0 填補(bǔ)滿長度為 8 個字符\n
后面的用法不想寫了,網(wǎng)上很多,貼一個demo參考地址

結(jié)尾疑問:1.網(wǎng)上很多教程都是把Unicode寫死的,本來我是想讓后臺返回那個字符串,然后根據(jù)字符串(\U0000XXX)來動態(tài)的修改圖標(biāo)的,但是" \ "這個在C語言里面是基本的轉(zhuǎn)異符號,沒辦法替換,我暫時只有從本地定義宏,然后根據(jù)后臺返回的字符串來替換。這種方式感覺不優(yōu)雅,希望有好心人也能分享一下,使用iconfont動態(tài)替換圖標(biāo)的使用方案。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容