系统字体

转载 2012年03月30日 13:03:12

转自http://bj007.blog.51cto.com/1701577/548932

iPhone上的系统字体在很多场合都可以满足要求了。你可以通过系统提供的字体类方法轻松地在普通、加粗和斜体之间选择。示例代码如下:


UIFont *mainTitleFont = [UIFont boldSystemFontOfSize:14.0]; 
UIFont *subTitleFont = [UIFont SystemFontOfSize:14.0]; 
UIFont *textFont = [UIFont italicSystemFontOfSize:12.0];  

 

 

 

但如果要一个加粗斜体或者其他字体怎么办呢?在这种情况下,你可以按如下使用fontWithName方法:  

UIFont *altFont = [UIFont fontWithName:@"Courier-Bold" size:14.0];

 

 

这很好,不过你如何知道可用的字体名字呢?如果你猜错了字体名字,你的代码会抛出异常——这里可没有映射到最接近字体的优雅处理!

在iPhone文档上我无法找到可用的字体名字,在网络上搜索的时候也无果(至少在搜索结果的前几页)。所以我写了如下一段代码:  

  // 列出iPhone上所有的字体    // List all fonts on iPhone
  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]);
      }
      [fontNames release];
  }
  [familyNames release];

 

如果使用iPhone SDK v2.1输出结果如下: 
Family name: Hiragino Kaku Gothic ProN W3
    Font name: HiraKakuProN-W3
Family name: Courier
    Font name: Courier
    Font name: Courier-BoldOblique
    Font name: Courier-Oblique
    Font name: Courier-Bold
Family name: Arial
    Font name: ArialMT
    Font name: Arial-BoldMT
    Font name: Arial-BoldItalicMT
    Font name: Arial-ItalicMT
Family name: STHeiti TC
    Font name: STHeitiTC-Light
    Font name: STHeitiTC-Medium
Family name: AppleGothic
    Font name: AppleGothic
Family name: Courier New
    Font name: CourierNewPS-BoldMT
    Font name: CourierNewPS-ItalicMT
    Font name: CourierNewPS-BoldItalicMT
    Font name: CourierNewPSMT
Family name: Zapfino
    Font name: Zapfino
Family name: Hiragino Kaku Gothic ProN W6
    Font name: HiraKakuProN-W6
Family name: Arial Unicode MS
    Font name: ArialUnicodeMS
Family name: STHeiti SC
    Font name: STHeitiSC-Medium
    Font name: STHeitiSC-Light
Family name: American Typewriter
    Font name: AmericanTypewriter
    Font name: AmericanTypewriter-Bold
Family name: Helvetica
    Font name: Helvetica-Oblique
    Font name: Helvetica-BoldOblique
    Font name: Helvetica
    Font name: Helvetica-Bold
Family name: Marker Felt
    Font name: MarkerFelt-Thin
Family name: Helvetica Neue
    Font name: HelveticaNeue
    Font name: HelveticaNeue-Bold
Family name: DB LCD Temp
    Font name: DBLCDTempBlack
Family name: Verdana
    Font name: Verdana-Bold
    Font name: Verdana-BoldItalic
    Font name: Verdana
    Font name: Verdana-Italic
Family name: Times New Roman
    Font name: TimesNewRomanPSMT
    Font name: TimesNewRomanPS-BoldMT
    Font name: TimesNewRomanPS-BoldItalicMT
    Font name: TimesNewRomanPS-ItalicMT
Family name: Georgia
    Font name: Georgia-Bold
    Font name: Georgia
    Font name: Georgia-BoldItalic
    Font name: Georgia-Italic
Family name: STHeiti J
    Font name: STHeitiJ-Medium
    Font name: STHeitiJ-Light
Family name: Arial Rounded MT Bold
    Font name: ArialRoundedMTBold
Family name: Trebuchet MS
    Font name: TrebuchetMS-Italic
    Font name: TrebuchetMS
    Font name: Trebuchet-BoldItalic
    Font name: TrebuchetMS-Bold
Family name: STHeiti K
    Font name: STHeitiK-Medium
    Font name: STHeitiK-Light

 

 

在选用非系统字体的时候,你需要确保选择的字体在列表中。在将来的iPhone OS中字体列表是否会改变还有待观察。建议重新运行下上述代码段进行确认。

Android 解决字体随系统调节而变化的问题

Android 解决字体随系统调节而变化的问题 字数602 阅读208 评论0 喜欢12 看了标题也许不太清楚,所以先上两张 滴滴 的截图,对比一下: 1.png.jpe...
  • u011682673
  • u011682673
  • 2016年10月19日 10:00
  • 3080

安卓系统添加字体库和修改系统默认的字体

由于项目需要,需要将第三方提供的.ttf字库文件编译至系统源码中,在百度上找了好久,都没有找到想要的,最后还是Google解决了问题,这里作下记录。 Reference:  http://stac...
  • qq_25815655
  • qq_25815655
  • 2016年09月09日 14:09
  • 2037

Android系统字体大小如何影响app的字体大小?

在Android应用开发过程中,一定会碰到本来完美的布局,在系统字体大小设置【最大】时变成一团浆糊。解决办法网上也有很多,但是分析原理的却几乎没看到。但是作为开发人员必须懂得举一反三,而要举一反三就必...
  • javine
  • javine
  • 2016年12月25日 00:54
  • 1832

打造前端 Deepin Linux 工作环境——系统更新以及配置字体

打造前端 Deepin Linux 工作环境——系统更新以及配置字体安装好编辑器,然后就准备码代码了,但是感觉字体不是很好看。所以决定配置一下字体。顺便把系统给更新一下Deepin linux 系统更...
  • FungLeo
  • FungLeo
  • 2017年11月03日 18:58
  • 1276

Cocos2dx-- 聊天系统之富文本(RichText)与字体对齐

前言游戏开发中我们一般都会有聊天系统,我们可以同时或单独发文字,图片,表情,超链接等信息的文本即称为富文本。如下图所示: 我使用的是cocos-3.4引擎版本里的RichText富文本控件实现这些操...
  • u010223072
  • u010223072
  • 2015年10月10日 16:54
  • 7021

XeCJK 使用系统字体

\documentclass[12pt,a4paper]{article} \usepackage{xeCJK} %\usepackage{ctex} \usepackage{fontenc,xuni...
  • TH_NUM
  • TH_NUM
  • 2016年11月23日 12:12
  • 635

Spinner(一)——修改系统自带Spinner字体大小和颜色完整示例

MainActivity如下: package cc.test; import android.app.Activity; import android.os.Bundle; import and...
  • lfdfhl
  • lfdfhl
  • 2014年12月05日 17:36
  • 3233

修复系统字体,解决文字乱码问题。

最近由于错装PS的字体,导致系统里很多软件中一些文字乱码。为了恢复系统字体到默认的正常状态需要做两件事: 1.清空C:\WINDOWS\Fonts文件夹,注意配合使用unlocker,清空注册表键值...
  • dj0379
  • dj0379
  • 2011年08月26日 09:19
  • 23725

Android修改系统自带Spinner字体大小和颜色示例代码

MainActivity代码如下: package hu.scythe.droidwriter; import android.R.anim; import android.R.style; ...
  • liuzhi0724
  • liuzhi0724
  • 2015年06月01日 16:24
  • 1803

Dialog(八)——改变系统自带Dialog字体大小(ContextThemeWrapper)

MainActivity如下: package c.c.testdialog; import android.app.Activity; import android.app.AlertDialog...
  • lfdfhl
  • lfdfhl
  • 2014年06月06日 15:44
  • 3717
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:系统字体
举报原因:
原因补充:

(最多只允许输入30个字)