【问题标题】:Font changing in iOS application everywhere in one go随时随地在 iOS 应用程序中更改字体
【发布时间】:2012-12-07 13:47:30
【问题描述】:

我正在为我公司的客户制作应用程序。整个应用程序已完成,并且已经在应用程序商店中。但现在他希望我将标签/文本视图的字体或任何有文本的地方更改为自定义文本。有什么方法可以在一个地方更改字体,以便在应用程序的任何地方都可以更改?

【问题讨论】:

    标签: iphone objective-c ios ipad fonts


    【解决方案1】:

    据我所知,没有任何神奇的解决方案可以全局更改字体。你可以做小班来做到这一点。例如,您可以通过创建自定义UILabel 类并更改initWithFrameawakeFromNib 的字体来更改所有UILabel 字体。所以看起来您可能必须对应用中的所有 ui 元素执行此操作。

    但是,嘿,优势是。下次更改字体将是一件轻而易举的事。我们都知道客户公司如何改变主意...

    来源 - How do I set a custom font for the whole application?

    【讨论】:

      【解决方案2】:

      我刚刚发现[[UILabel appearance] setFont:[UIFont fontWithName:@"Open Sans" size:20.0]]; 效果很好

      【讨论】:

        【解决方案3】:

        在您的应用委托中创建一个可供所有应用类访问的 NSString。这个 NSString 将是你的字体的名称。现在浏览您的应用程序并将所有文本的字体更改为 NSString 中的名称。

        label.font = [UIFont fontWithName:appDelegate.fontName size:12];
        

        只需将 NSString 设置为您在应用程序委托中选择的任何字体,其他所有内容都会更新为该字体。这应该比创建和实现 UILabel 子类更容易,因为您只想更改一个属性的一部分。

        【讨论】:

          【解决方案4】:

          您可以在项目的 .pch 文件中为字体编写宏(将仅替换字体名称或 UIFont 对象)。

          #define TextFont [UIFont fontWithName:@"Helvetica" size:13]
          

          并在所有课程中使用它。但是您使用 IB 或故事板放置的所有文本,您必须通过 IB 或故事板手动更改所有字体。您现在可以为所有 UI 元素创建 IBOutelets,以便下次使用宏以编程方式轻松更改字体。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2015-12-19
            • 1970-01-01
            • 1970-01-01
            • 2011-10-26
            • 2023-03-18
            相关资源
            最近更新 更多