ssn*_*sen 5 interface-builder uikit xcode-storyboard swift
我创建了一个名为MyUILabel的UILabel子类.唯一改变的是字体和字体大小.当我运行应用程序时,它看起来像预期的那样 但是,在故事板中,显示了默认的UILabel.有没有办法让Storyboard显示我的子类的字体和字体大小?
MyUILabel:
public class MyUILabel : UILabel {
required public init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
self.font = UIFont(name: Constants.DefaultFont, size: 30)
}
}
Run Code Online (Sandbox Code Playgroud)
你可以做到@IBDesignable,然后实现prepareForInterfaceBuilder:
@IBDesignable
public class MyUILabel: UILabel {
public override func awakeFromNib() {
super.awakeFromNib()
configureLabel()
}
public override func prepareForInterfaceBuilder() {
super.prepareForInterfaceBuilder()
configureLabel()
}
func configureLabel() {
font = UIFont(name: Constants.DefaultFont, size: 40)
}
}
Run Code Online (Sandbox Code Playgroud)
注意,当我实施时,IB不喜欢它init(coder:),所以我把它移到了awakeFromNib.
另请注意,当您@IBDesignable上课时,Apple建议您为此可设计类创建单独的目标(例如"文件" - "新建" - "目标..." - "可可触摸框架").有关更多信息,请参阅WWDC 2014视频Interface Builder中的新增功能.
| 归档时间: |
|
| 查看次数: |
1266 次 |
| 最近记录: |