【问题标题】:IOS - All font management in one place [duplicate]IOS - 一个地方的所有字体管理[重复]
【发布时间】:2016-09-05 07:05:55
【问题描述】:

我正在用 Swift 制作一个 iOS 应用。我想在一个地方管理所有字体大小及其样式,如下面的 HTML 代码。在下面的代码中,我需要调整页面中所有字体的大小是更改body{font-size}

<style>
body{
    font-size: 30px; /* change only here */
}
</style>

<body>
    <div style="font-size: 1em">normal</div>
    <div style="font-size: 2em">double</div>
</body>

想知道iOS开发中如何管理一个APP中的所有字体。

【问题讨论】:

标签: ios swift


【解决方案1】:

您可以执行以下操作:
至少你可以得到一些关于如何做到这一点的想法:)

extension UIFont {

    struct CustomFont {

        private var fontFamily: String!

        static let defaultFontSize: CGFloat = 12

        func Light(withSize size: CGFloat = CustomFont.defaultFontSize) -> UIFont? {
            return UIFont(name: "\(fontFamily)-Normal", size: size)
        }

        func Normal(withSize size: CGFloat = CustomFont.defaultFontSize) -> UIFont? {
            return UIFont(name: "\(fontFamily)-Normal", size: size)
        }

        func Bold(withSize size: CGFloat = CustomFont.defaultFontSize) -> UIFont? {
            return UIFont(name: "\(fontFamily)-Normal", size: size)
        }
    }

    class var Lato: CustomFont {
        return CustomFont(fontFamily: "Lato")
    }

    class var Helvetica: CustomFont {
        return CustomFont(fontFamily: "Helvetica")
    }

    class var ComicSans: CustomFont {
        return CustomFont(fontFamily: "ComicSans")
    }
}

用法:

let font = UIFont.Lato.Normal() // Returns a Normal font with default font size
let font = UIFont.Lato.Bold(withSize: 18) // Returns a Bold font with custom size

【讨论】:

  • 非常感谢您的回复。你的回答对我很有帮助!谢谢。
  • 初始化器CustomFont(fontFamily: UIString) 定义在哪里?
  • 结构类型有一些叫做 Memberwise Initializers 的东西,看看Classes and Structures
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多