当前位置: 首页 > 面试题库 >

Xcode:在动态框架内使用自定义字体

汤才捷
2023-03-14
问题内容

我在框架中添加了自定义字体。我遵循了所有步骤,但是没有用。

我可以在Interface Builder中设置字体,但是在构建项目时,它不会在模拟器/设备上显示该字体。


问题答案:

我来晚了一点,但是我采用了PetahChristian的解决方案,并以扩展的形式创建了Swift版本。这对我有用。我发现,当您尝试使用常规名称来使用字体名称和大小来获取字体时,它总是在字体文件的主捆绑包中查找,并且没有将捆绑包标识符作为参数的方法。如果苹果能制造一款,那将是很好的。

迅速:

public extension UIFont {

    public static func jbs_registerFont(withFilenameString filenameString: String, bundle: Bundle) {

        guard let pathForResourceString = bundle.path(forResource: filenameString, ofType: nil) else {
            print("UIFont+:  Failed to register font - path for resource not found.")
            return
        }

        guard let fontData = NSData(contentsOfFile: pathForResourceString) else {
            print("UIFont+:  Failed to register font - font data could not be loaded.")
            return
        }

        guard let dataProvider = CGDataProvider(data: fontData) else {
            print("UIFont+:  Failed to register font - data provider could not be loaded.")
            return
        }

        guard let font = CGFont(dataProvider) else {
            print("UIFont+:  Failed to register font - font could not be loaded.")
            return
        }

        var errorRef: Unmanaged<CFError>? = nil
        if (CTFontManagerRegisterGraphicsFont(font, &errorRef) == false) {
            print("UIFont+:  Failed to register font - register graphics font failed - this font may have already been registered in the main bundle.")
        }
    }

}

用法示例:

UIFont.jbs_registerFont(
    withFilenameString: "Boogaloo-Regular.ttf",
    bundle: Bundle(identifier: "com.JBS.JBSFramework")!
)


 类似资料:
  • 问题内容: 我正在使用Swift在Xcode(7.0版)中创建游戏,并且我想在游戏结束时以字体“ gameOver.ttf”显示标签“ Game Over”。我已将字体添加到资源文件夹中。我不知道如何在我的代码中引用它。我可以帮忙吗?我的代码: 问题答案: 这些是向您的应用程序添加自定义字体的步骤: 在您的应用程序中添加“ gameOver.ttf”字体(确保它已包含在目标中) 修改applica

  • 我有个模特就像 我想按色标订购quesryset,但不是绿色、红色、黄色产品。我想订购红色、黄色、绿色的产品。 可能吗?有没有像Java Comparator这样的东西?提前谢谢。

  • 本文向大家介绍struts2自定义MVC框架,包括了struts2自定义MVC框架的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了struts2自定义MVC框架的方法,供大家参考,具体内容如下 自定义MVC: (首先了解Model1和Model2的概念) Model1与Model2:   Model1:就是一种纯jsp开发技术,将业务逻辑代码和视图渲染代码杂糅在一起。   Model

  • 问题内容: 我喜欢创建一个看起来像这个图像的java jframe。我已经创建了 具有不同形状(例如三角形,圆形,多边形和一些疯狂的 形状)的jframe。但是问题是很难[99%不可能]创建 这样的图像。我怎么能像这样的jframe。我用这段代码来创建 形状的窗口。 现在我可以将此图像转换为形状。然后设置setshapes。任何想法吗?还是 有办法使jframe的完全透明和jlable(使图像 完

  • 我写了一个小的框架与URI结构的lang/域/控制器/方法/id现在我想使用CKFinder与CKEditor集成我不能上传和浏览服务器,因为地址结构?那我该怎么办?要浏览它使用的服务器: http://localhost/public/admin/style1/plugins/ckfinder/ckfinder.html?CKEditor=abstraction 现在我已经通过这些更改了上传和浏

  • 在我的项目中,我有一个1。MovieplayerView,2 .具有动态内容的标签,3 .具有可变行数的tableView。 我是用scrollView中的所有视图来做这件事的。但我总是对标签的动态高度有疑问。它有时与表View重叠。 我开始知道我们可以使用自定义视图作为表视图标题。如何使用可变内容高度和自动布局来完成此操作?我是iOS的新手,任何建议?? 我知道如何将视图添加为表的标题。但当视图