这是一个应该在Storyboard中动态更改标签字体的类:
@IBDesignable class FlexibleLabel: UILabel {
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
self.font = UIFont(name: "Brandon Grotesque", size: self.font.pointSize)
}
}
我将这个类分配给了一些标签,但是我收到了这个错误:
无法更新自动布局状态:代理崩溃。
我该怎么做才能解决这个问题?
答案 0 :(得分:1)
要弄清楚代理崩溃的原因,请在故事板中选择FlexibleLabel
实例,然后从菜单栏中选择编辑器>调试所选视图。如果问题出现在您的代码中,Xcode应该会在崩溃时将您置于调试器中。
在编辑故事板时,Xcode不会使用init(coder:)
来创建视图。它使用init(frame:)
,然后使用KVC(键值编码)设置视图的属性。
答案 1 :(得分:1)
在视图完全从nib初始化之后调用的第一个方法是UIView的awakeFromNib()
方法。您可以覆盖并使用它来修改视图或子视图属性