与字体手提箱的iPhone自定义字体
我正尝试在iOS4应用程序中使用字体手提箱来定制字体,但是没有任何成功。
我已经阅读了其他已经logging如何使用自定义字体的文章,所以已经将手提箱复制到我的项目中,并将其添加到资源和应用程序数组提供的Info.plist'字体,并尝试在Interface Builder和在代码中。 但它不工作!
我发现有关自定义字体的所有示例都显示使用ttf或otf文件,但与手提箱没有任何关系。 可以这样做吗? 如果不是,我怎样才能从Font Book中得到一些可以用作自定义字体的文件结构?
我有同样的问题,只是解决了它。 朋友给了我几个字体压缩,我解压缩,然后文件大小为零kb,我不能将它们安装到字体书。 所以我search了一下,发现我的朋友应该用StuffIt Expander来压缩。 于是他又把文件发给我,我用StuffIt Expander解压。 然后我能够将字体安装到我的字体书。
但是,我的iOS应用程序仍然无法使用这些字体。 所以下面是我做的:
-
我发现我需要转换字体,所以我安装了Fondu http://fondu.sourceforge.net/安装结束了说不成功,但后来我仍然能够使用。
-
然后我意识到我需要Rosetta来运行Fondu,所以我查看了这个页面上的说明。 将我的Snow Leopard CD取出并安装可选软件包http://www.macobserver.com/tmo/article/snow_leopard_installing_rosetta/
-
打开terminal并转到您的字体所在的目录。 input命令:fondu [font file]然后你会得到一个提示,询问你是否要保存[font file] .pfbselectyes。
-
现在在您的XCode中,将pfb文件添加到您的项目中。 然后转到info.plist并将文件添加到UIAppFonts(包括.pfb扩展名)。
-
我testing了UITableViewCell中的字体
cell.textLabel.font = [UIFont fontWithName:@“[font file]”size:30]; //不要包含.pfb扩展名
字体显示正常。 我最初认为iOS将需要一个.ttf文件,但看起来像.pfb也很好。
希望这可以帮助。
其他testing技巧:如上所示添加UIAppFonts plist数组后,在appDidFinishLaunchingWithOptions方法和控制台types中添加一个断点
po [UIFont familyNames]
这会得到一个已安装的字体列表,以便search您的字体名称。 复制并粘贴到这个:
po [UIFont fontNamesForFamilyName:@"familyname"]
这会得到您在代码中引用的字体名称。 我还没有尝试[字体文件名]的方法,但这给你的名字应用程序用来引用你想要的确切字体。 当字体包含一系列变体或者您从同一系列中安装了多个变体时,这很重要。 例如,helvetica有四个变体,所以你可以这样select正确的:
lblMyLabel.font = [UIFont fontWithName:@"fontname" size:lblMyLabel.font.pointSize]
例如
lblMyLabel.font = [UIFont fontWithName:@"Helvetica-Oblique" size:lblMyLabel.font.pointSize]
这会保留原来用于标签的字体点大小。 一旦视图加载,我也只有成功。
首先将SystemConfiguration框架包含到您的项目中。 并根据您的要求添加ttf或otf文件。 然后导入dlfcn.h文件来委托实现文件。 然后你必须在图像中附加后调用函数 。
然后,您可以在任何要使用自定义字体的地方访问控制器。 您只需要在UIFont的fontwithName:方法中传递字体。
- iOS Storyboard:ViewController之外和场景之上的视图(First Responder和Exit框之间)
- 了解addChildViewController的使用
- 在Swift中使用for-in创build一个string数组
- 如何让Firebase自动删除超过30分钟的值
- NSManagedObjectContext在第二次调用时为零
- AVCaptureMovieFileOutput后用AVPlayer播放video
- NSDate保存为plist时的行为
- 如何为我的iOS应用程序的图像做PngCrush?
- 检测performSelectorInBackground的结束:withObject: