我有一个UIView子类。在此 View 中,我创建了UIlabel的实例。
现在,我要在 Storyboard 中设置这些标签的字体属性。是否可以为IBInspectable制作UIFont

我的方法之一是:
@IBInspectable var fontName: UIFont
但这是行不通的。

总结一下:我试图将它作为UIView:

希望有人能帮助我,谢谢! :)

最佳答案

主意

您可以使用Int枚举选择某些字体之一。

细节

xCode 8.2.1,Swift 3

代码


import UIKit
enum FontType: Int {
    case Default = 0, Small, Large

    var fount: UIFont {
        switch self {
            case .Default:
                return UIFont.systemFont(ofSize: 17)
            case .Small:
                return UIFont.systemFont(ofSize: 12)
            case .Large:
                return UIFont.systemFont(ofSize: 24)
        }
    }


    static func getFont(rawValue: Int) -> UIFont  {
        if let fontType = FontType(rawValue: rawValue) {
            return fontType.fount
        }
        return FontType.Default.fount
    }
}


import UIKit
@IBDesignable
class View: UIView {

    private var label: UILabel!

    @IBInspectable var textFont:Int = 0

    override func draw(_ rect: CGRect) {
        super.draw(rect)
        label = UILabel(frame: CGRect(x: 20, y: 20, width: 120, height: 40))
        label.text = "Text"
        label.textColor = .black
        label.font = FontType.getFont(rawValue: textFont)
        addSubview(label)
    }

}



Swift UIFont IBInspectable-有可能吗?-LMLPHP

结果

Swift UIFont IBInspectable-有可能吗?-LMLPHP

Swift UIFont IBInspectable-有可能吗?-LMLPHP

Swift UIFont IBInspectable-有可能吗?-LMLPHP

Swift UIFont IBInspectable-有可能吗?-LMLPHP

关于Swift UIFont IBInspectable-有可能吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43089274/

10-13 04:21