iOS 自訂字型

來源:互聯網
上載者:User

引言:

看膩了清一色預設的App字型,換一個個人化體驗也是不錯的選擇.

參考:

http://www.16kan.com/post/218270.html

http://blog.csdn.net/frankwun/article/details/7688950

字型在哪?

Mac 有一款內建App叫做字型冊.  開啟這個應用以後,可以看到目前內建在系統中的字型,iOS支援顯示的格式有兩種,分別是otfttf.

首選是otf

如何配置?

第一步:

將要使用的字型拖動到項目中.

第二步:

在Info.plist中添加Fonts provided by application項,加入一個item值為剛剛添加的字型檔檔案名稱.

如何使用?

使用時要注意,字型檔名稱,並非真正使用時的名稱.

真正的名稱在字型冊的查看某一字型的詳細參數時可以看到.如:

或者根據字型檔在應用中的路徑通過代碼來獲得(不是特別准,可能偶爾需要手動調整):

NSString *fontPath = [[NSBundle mainBundle] pathForResource:fontFileNameArray[i] ofType:nil];NSURL *url = [NSURL fileURLWithPath:fontPath];CGDataProviderRef fontDataProvider = CGDataProviderCreateWithURL((__bridge CFURLRef)url);if (fontDataProvider == NULL){    break;}CGFontRef newFont = CGFontCreateWithDataProvider(fontDataProvider);CGDataProviderRelease(fontDataProvider);if (newFont == NULL){    break;}CFStringRef fontName = CGFontCopyFullName(newFont);NSString *fontNameString = (__bridge id)(fontName);if ([fontNameString isEqualToString:@"Yuppy SC Regular"]) {    fontNameString = @"YuppySC-Regular";}[fontNameMDic setObject:fontNameString forKey:fontFileNameArray[i]];CFRelease(fontName);CGFontRelease(newFont);

以下代碼可以遍曆出目前在iOS系統中可以使用的字型名稱

NSArray *familyNames = [[NSArray alloc] initWithArray:[UIFont familyNames]];NSArray *fontNames;NSInteger indFamily, indFont;for(indFamily=0;indFamily<[familyNames count];++indFamily){    NSLog(@"Family name: %@", [familyNames objectAtIndex:indFamily]);    fontNames =[[NSArray alloc]initWithArray:[UIFont fontNamesForFamilyName:[familyNames objectAtIndex:indFamily]]];    for(indFont=0; indFont<[fontNames count]; ++indFont)    {        NSLog(@" Font name: %@",[fontNames objectAtIndex:indFont]);    }}

總結:

唯一不好處是字型的資料包很佔用App的體積. 這個問題,有待解決.

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.