iOS/Mac项目接入字体

一、准备二、接入1,壳工程接入和使用2,组件库接入和使用

为了减少专利字体对项目的影响,项目工程中需要接入公司自己的字体库,对于iOS/Mac项目来说接入非系统的外部字体,或者第三方字体,放在壳工程下,操作步骤以及使用来说相对简单,并且常用,如果放到组件库中多需要注意Bundle的影响,以及多了字体库的安装步骤(不建议在组件中)

一、准备

1,项目工程2,外部字体(思源字体为例,需要UDC(京东)字体的请小窗) 网盘链接: https://pan.baidu.com/s/1cOgxNGmeTlQdg7HWrrcYag 提取码: kw8v

二、接入

1,壳工程接入和使用

1,字体下载完后,解压到本地,常用字体文件格式有.otf,.ttf,.ttc等。 2,添加到Xcode工程,可以直接把字体文件拖拽到壳工程并"Copy Bundle Resources",也可以在 File->Add Files to “xxx”,将字体文件添加到壳工程中 3,Info.plist文件,新增Key- Value,“Fonts provided by application” 添加字体数组,eg. 直接通过索引名称使用,或者通过遍历UIFont.familyNames,找到相应的名字使用。

public extension UIFont {

/// 扩展字体,非系统字体, 字体大小,字体名称,如果找不到相关字体,允许返回nil

class func ex_extFont(ofSize fontSize: CGFloat, fontName: String) -> UIFont? {

return self.init(name: fontName, size: fontSize)

}

/// 思源黑体字体支持

class func SourceHLight(ofsize fontSize: CGFloat) -> UIFont {

return ex_extFont(ofSize: fontSize, fontName: "SourceHanSansCN-Light") ?? ex_light(ofSize: fontSize)

}

class func SourceHBold(ofsize fontSize: CGFloat) -> UIFont {

return ex_extFont(ofSize: fontSize, fontName: "SourceHanSansCN-Bold") ?? ex_bold(ofSize: fontSize)

}

class func SourceHHeavy(ofsize fontSize: CGFloat) -> UIFont {

return ex_extFont(ofSize: fontSize, fontName: "SourceHanSansCN-Heavy") ?? ex_heavy(ofSize: fontSize)

}

class func SourceHRegular(ofsize fontSize: CGFloat) -> UIFont {

return ex_extFont(ofSize: fontSize, fontName: "SourceHanSansCN-Regular") ?? ex_regular(ofSize: fontSize)

}

class func SourceHNormal(ofsize fontSize: CGFloat) -> UIFont {

return ex_extFont(ofSize: fontSize, fontName: "SourceHanSansCN-Normal") ?? ex_regular(ofSize: fontSize)

}

class func SourceHExtraLight(ofsize fontSize: CGFloat) -> UIFont {

return ex_extFont(ofSize: fontSize, fontName: "SourceHanSansCN-ExtraLight") ?? ex_light(ofSize: fontSize)

}

class func SourceHMedium(ofsize fontSize: CGFloat) -> UIFont {

return ex_extFont(ofSize: fontSize, fontName: "SourceHanSansCN-Medium") ?? ex_medium(ofSize: fontSize)

}

}

2,组件库接入和使用

1,把字体放到组件的Assets文件中2,遍历Bundle找到字体并在application:didFinishLaunchingWithOptions中注册注册

文章来源

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。