我有一个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-有可能吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43089274/