Swift添加字体到项目中

  1. 下载字体,导入到项目文件夹。

  2. 项目Info添加Fonts provided by application的item为字体文件名"xxx.ttf"。

  3. 打印出所有字体名,找到导入的字体文件对应不同weight的字体。如果还是找不到,我也不知道怎么解决。

Swift 复制代码
    for family in UIFont.familyNames.sorted() {
        for fontName in UIFont.fontNames(forFamilyName: family).sorted() {
            print(fontName)
        }
    }
  1. 针对不同weight返回不同字体。
Swift 复制代码
func getEnglishFont(ofSize size: CGFloat, weight: UIFont.Weight) -> UIFont {
        var font: UIFont? = nil
        
        switch weight {
        case .ultraLight:
            font = UIFont(name: "KumbhSans-Regular_ExtraLight", size: size)
        case .thin:
            font = UIFont(name: "KumbhSans-KumbhSans-Regular_Thin", size: size)
        case .light:
            font = UIFont(name: "KumbhSans-Regular_Light", size: size)
        case .regular:
            font = UIFont(name: "KumbhSans-Regular", size: size)
        case .medium:
            font = UIFont(name: "KumbhSans-Regular_Medium", size: size)
        case .semibold:
            font = UIFont(name: "KumbhSans-Regular_SemiBold", size: size)
        case .bold:
            font = UIFont(name: "KumbhSans-Regular_Bold", size: size)
        case .heavy:
            font = UIFont(name: "KumbhSans-Regular_ExtraBold", size: size)
        case .black:
            font = UIFont(name: "KumbhSans-Regular_Black", size: size)
        default:
            print("default font")
            font = UIFont(name: "KumbhSans-Regular", size: size)
        }

        var nonEmptyFont: UIFont = UIFont.systemFont(ofSize: size, weight: weight)
        if let tmpFont = font {
            nonEmptyFont = tmpFont
        } else {
            print("使用默认字体")
        }
        
        return nonEmptyFont
    }
相关推荐
天桥吴彦祖2 天前
判断iOS如何监听手机屏幕是否锁屏
ios
东坡肘子2 天前
SPI 加入 Apple,Swift 迈向自举 -- 肘子的 Swift 周报 #142
人工智能·swiftui·swift
敲代码的鱼2 天前
PDF 预览与签名批注写回 支持安卓 iOS 鸿蒙 UTS插件
android·前端·ios
时光足迹2 天前
uni-app 视频通话实战:康复师与患者视频问诊的 6 个致命 Bug 与解决方案
android·ios·uni-app
时光足迹2 天前
JPush UniApp UTS 插件完全参考手册:API、事件与厂商通道一网打尽
vue.js·ios·uni-app
时光足迹2 天前
极光推送全攻略(下):uni-app 代码实现与 iOS 排查实战
vue.js·ios·uni-app
时光足迹3 天前
极光推送全攻略(上):被iOS证书折磨了三天,我写了一份前端也能看懂的避坑指南
前端·ios·uni-app
编程范式4 天前
SwiftUI 中图片如何适配可用空间
ios
songgeb6 天前
启发式 UI 自动化:从线性剧本到每步读屏决策
ios·测试
东坡肘子9 天前
Swift 还让你 Excited 吗?-- 肘子的 Swift 周报 #141
人工智能·swiftui·swift