今天项目需求里要求给文字设置字体样式, 以前的工作中并没有涉及字体样式的设置, 后来在网上找到了相关的方法, 这里总结一下.
Cocoa
在 UIKit
框架中为开发者提供了高层次的 API
以及方便的枚举、加载和使用字体。Cocoa Touch
使用 UIFont
类来封装字体。每个 iOS 设备都内置了系统字体。
01.Xib
或者 Storyboard
如果是在 Xib
或者 Storyboard
中你可以通过, 比如说 UILabel
,你可以同过设置它的属性来直接设置字体样式:
-
点击向右箭头会弹出2、3所示的弹窗
-
点击font会有系统(System)和自定义(Custom)等选项
-
如果你选择 System 默认就是苹方字体,此时你只能设置比如 regular、light、thin 等;但是如果你选择 Custom,就会弹出一大串字体名称供你选择,用什么就选什么,很方便。
02.代码中
如果你是在代码中设置文字字体,你就必须知道更多,请往下看。
字体被组织成字体族科(Families),每个族科又包含字样(Faces)。例如,Helvetica 是一个字体族科,Helvetica Bold是 Helvetica 族科中的一个字样。
要加载字体,你必须知道字体的字样(字体的名字),要知道字样,你必须知道它的族科。
怎么获取系统字体的族科呢,我们可以循环输出系统字体族科,使用 UIFont
类的familyNames
类方法,通过这个类方法得到字体族科名字然后用 UIFont
类的fontNamesForFamilyName:
类方法,传递 family name
作为参数,并返回一个字体名称的数组(array):
for(NSString *familyName in [UIFont familyNames]) {
NSLog(@"Font FamilyName = %@",familyName); // 输出字体族科名字
for(NSString*fontName in [UIFont fontNamesForFamilyName:familyName]){
NSLog(@"\t%@",fontName); // 输出字体族科下字样名字
}
}
复制代码
在 iOS 模拟器上运行代码,得到如下结果:
...
Font Family = Geeza Pro
GeezaPro
GeezaPro-Bold
Font Family = Helvetica Neue
HelveticaNeue-Italic
HelveticaNeue-Bold
...
复制代码
字体族科后面加-Bold
就是加粗, 加 -Oblique
就是倾斜等.
拿到字体族科和字样名称以后,你就可以直接使用代码设置文字的字样了。
如下 mouthL
是 UILabel
的一个实例对象,可以使用 UIFont
给 label
的 font
属性赋值,运行代码,你就会发现,字体神奇的发生了变化。
mouthL.font = [UIFont fontWithName:@"PingFangTC-Light" size:11];
复制代码