制作自己的字库并在工程中显示

制作自己的字库并在工程中显示

此篇教程操作很复杂,但有着实用价值,可以用来提取网上下载的字库并制作自己的字库拿到工程项目中去显示。有时候加载自定义中文字体会非常大,动辄8-9M大小的中文字库还是很占大小的,而我们也只需要里面的几个汉字,这篇博文就是做这事情的。

首先是制作字体篇

1. 下载工具

2. 下载字体

3. 将字体导入到工具中,并根据汉字查找出汉字

4. 新建自己的字体

5. 查找出游贤明3个字的字符,并复制粘贴,赋值代码点以及名称

6. 导出为ttf字体

这样子就制作好自定义字体了。

 

以下是显示字体篇

源码:

//
//  RootViewController.m
//  Font
//
//  Created by YouXianMing on 14-9-6.
//  Copyright (c) 2014年 YouXianMing. All rights reserved.
//

#import "RootViewController.h"
#import "FontPool.h"

@interface RootViewController ()

@end

@implementation RootViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
    self.view.backgroundColor = [UIColor blackColor];
    [FontPool registerFont:bundleFont(@"YouXianMing.ttf") withName:@"YouXianMing"];

    UILabel *label      = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 320, 22)];
    label.center        = self.view.center;
    label.font          = [UIFont fontWithName:CUSTOM_FONT(@"YouXianMing", 0) size:18];
    label.textColor     = [UIColor cyanColor];
    label.textAlignment = NSTextAlignmentCenter;
    label.text          = @"游贤明 攻城狮";
    [self.view addSubview:label];
}

@end

最终显示的效果如下:

因为我的字库中只有 游贤明 这3个汉字的编码,没有包括攻城狮的汉字,所以显示攻城狮的时候又变成黑体了,在这里表明成功了:)

时间: 2024-11-01 16:49:04

制作自己的字库并在工程中显示的相关文章

怎么去掉Xcode工程中的某种类型的警告

问题描述  在我们的项目中,通常使用了大量的第三方代码,这些代码可能很复杂,我们不敢改动他们,可是作者已经停止更新了,当sdk升级或者是编译器升级后,这些遗留的代码可能会出现许许多多的警告,那么我们有没有办法去掉这些烦人的警告,不然一个工程几百个警告,你看着怎么都不爽吧.我们怎么去掉警告呢? 1. 最直接.最一劳永逸.最安全的方式,直接找到警告的那段代码,改为不警告.这个方式最安全. 可是它有一个问题,就是,当我们很多文件都有这种类型的警告的时候,我们就需要改动很多很多的源码了, 对于不是我们写

VC在一个工程中实现多语言版本

前段时间笔者因为做一个程序,客户要求要有中英文版本,开始以为要做二个工程,只是资源文件不同,但是发现这样一个工程更新另外一个也要更新,实在是很麻烦 ,后来经过网上查找资料与自己亲身实验,发现其实只要在一个工程中就可以实现.但是这个工程中要有两个资源文件,当编译不同版本时,程序可以自动链接不同资源文件 .下面把具体的方法写出来.供大家参考一下. 第一步.创建中英文版本资源文件 我们先创建第一个中文版本工程,假设工程名称为 Example,在向导第一步的"What language would yo

如何在Web工程中实现任务计划调度

好多朋友用过Windows的任务计划,也有不少程序迷自己曾写过时钟报警.系统自动关机等趣味程序,可却很少有朋友在Web工程中实现过类似功能.今天有空把笔者先前曾在Tomcat上实现的类似功能,搬出来与大家共享. 早在几年前,我公司跟某市财政局合作项目开发,为加强财政局对所属单位财务状况的有效监管,开发.实施了财政局数据中心项目.此项目采用B/S加C/S混合结构模式.财政局Web服务器上架设数据同步接收装置,由市属单位每天下班前把财务信息通过HTTP协议上传至财政局中心服务器,与Web服务器上的接

VC++工程中加入SplashScreen原理释解

摘要 本文旨在剖析VC++工程中加入 SplashScreen 的原理,并给出在VC++ MFC(exe)工程中加入 SplashScreen 的步骤. 关键字 SplashScreen,原理 环境:Windows 98SE/2000,VC++ 6.0 SplashScreen - 我们使用 Word 之类的软件在启动的短暂时间里就会看到它的身影.它通常用以在程序启动时显示程序及用户名称,版权信息等.我也不知道它准确的名称是什么(是闪屏吗?),就这样称呼吧.也许你也想在自己的工程里加入这样的特性

Java布局管理器在现实工程中的应用

内容简介:Java的出现是编程艺术和计算环境改变的结果,是Intenet发展的产物同时也是推动Internet发展的动力.但是Java作为新的编程语言,有许多不与以往编程语言不同的地方.布局管理就是其中的一个,本文的目的在于介绍如何将布局管理应用于现实工程中,而不是作为学习布局管理的参考资料. 布局管理对于众多编程人员来说是一个比较新的概念,因为以前使用的多种编程工具已经很好地解决了这个问题,根本就不用程序员自己考虑控件的布局问题,只需要简单的拖拽就可.但是接触到java之后,尤其是因为使用el

工程中Java Code Review发现的问题汇总

工程中Java Code Review发现的问题汇总 概述 最近对团队内近期开发的一些Java web工程进行了Code Review,这些Code主要是需要在多个工程中复用的基础组件,Java代码为主.审核中发现了一些编码问题(暂时不考虑设计模式.架构层面的),这里进行一下汇总总结. 问题列表 注释 普通的程序员最痛恨接手或使用没有文档的代码,而程序员一般又不喜欢些文档,代码注释是文档的一种,在Code Review中发现工具扫描时注释率很高,但是真正进去去看,注释率极低. 接口一定要有详细的

java-在eclipse的android工程中包含.json本地文件

问题描述 在eclipse的android工程中包含.json本地文件 我有一个.json本地文件,我不想把它放到服务器上,我只是想把它包含在我的app中.我试着直接把它贴到eclipse我的工程中,但是我得到一个异常:FileNotFoundException,我也试着把它贴到windows Explorer/Finder的工作区文件夹中,也得到了同样的异常信息.我应该把它放哪? 谢谢 解决方案 你应该把文件夹直接放在你android工程的 /assets 或者是/res/raw里.你可以用C

android-安卓工程中如何实现edittext中输入一段文字 在textview中弹出另一段文字(不同文字)

问题描述 安卓工程中如何实现edittext中输入一段文字 在textview中弹出另一段文字(不同文字) 各位大神 恕我还是安卓新手中的新手 可能这个问题对你们来说太浅显了 我想 如果是用if语句 要怎么写代码呢 还是只用监听就好? 解决方案 et.addTextChangedListener(new TextWatcher(){ @Override public void beforeTextChanged(CharSequence s, int start, int count, int

大一小白求助工程中的多线程问题

问题描述 大一小白求助工程中的多线程问题 在一个工程的主函数里面,创建了多个线程(这几个线程的函数体是同一个),创建的时候给这个线程传递了类似编号的参数,每个线程传递进去的参数当然是不同的,在线程中会用到这个参数,如果用vs,传进去的这个参数不稳定,我的意思是每次都会有变化,不是我预想的值,导致结果不正确,但是用dev cpp运行就很正常,现在很苦恼,调试了好久都没发现错误在哪里.是不是同一个函数要创建多个线程的时候传递参数要注意什么特别的问题?要不然也太奇怪了,dev cpp运行明明很正常 我