ios - 更改系统字体以进行测试

标签 ios xcode ios-simulator

我目前正在开发一个iOS项目,该项目的标签/按钮/控件分布在数十个场景中。
这些控件大多数是使用Interface Builder创建的。

因此,现在我的工作就是确保每个控件(尤其是标签)的格式都使用正确的字体系列,目前情况并非如此,因为许多开发人员只是忘记更改字体(我们必须以编程方式设置字体,因为在IB中添加控件后,它不包含在IB中)。

有没有一种方法可以临时更改系统字体,以便更容易查看忘记了字体设置的位置?

我搜索了:

  • 以编程方式更改系统字体
  • 某处更改Xcode中的字体
  • 在iOS模拟器中更改字体(可能作为调试选项)

  • 但是到目前为止,我还没有成功。我不能是唯一遇到这种问题的人-以编程方式设置每个控件字体自然很乏味。

    我能想象的唯一一件事就是用自定义字体覆盖翼型UILabel的绘制方法(翼形是谁吗?),但这似乎有点过头了?

    最佳答案

    您可以尝试创建一个覆盖UIFont的systemFontOfSize:方法的类别,或者使用方法swizzling(您可以在此处找到有关方法swizzling的更多信息:http://cocoadev.com/MethodSwizzling)。 两者都非常丑陋,不应该在生产中使用,但出于测试目的应该很好。

    这是UIFont的示例类别:

    @interface UIFont (SysFont)
    @end
    @implementation UIFont (SysFont)
    + (UIFont *)systemFontOfSize:(CGFloat)fontSize {
        return [UIFont fontWithName:@"YourFont" size:fontSize];
    }
    @end
    

    关于ios - 更改系统字体以进行测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20284507/

    相关文章:

    ios - 将多个图像拖到 Xcode 7.x 中损坏的 iOS 模拟器? (7.2)

    ios - 在模拟器中测试跨应用程序组的 NSUserDefaults 同步

    ios - 为什么 Xcode 7 iOS 模拟器卡住?

    ios - 如何在 Cocoa Touch 中切换 View ?

    ios - 仅在必要时删除 double 的尾随零

    ios - 构建 flutter 项目时架构 x86_64 的 undefined symbol

    xcode - Xcode的导航器 Pane 中的箭头指示什么?

    ios - 如何为 EXC_BAD_ACCESS 崩溃设置新的处理程序/响应程序

    ios - AVCaptureStillImageOutput captureStillImageAsynchronouslyFromConnection :completionHandler inactive/invalid connection passed?

    ios - UICollectionView 重新加载数据导致图形故障