我有一个从UIView继承的BaseView类,比如:
@IBDesignable class BaseView: UIView {
override init(frame: CGRect) {
super.init(frame: frame)
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
}
我在故事板中将这个类设置为
UILabel
、UIButton
和UITextField
。现在,我必须认识到哪个
UILabel
,UIButton
或UITextField
被称为init?(coder aDecoder: NSCoder)
。这件事有什么问题吗?
更新:
似乎无法将UIView类型的自定义类设置为UILabel,因此无法解决此问题。
最佳答案
我试着测试这个班
if self is UILabel { }
但是我收到一个编译器警告,从BaseView转换到不相关的UILabel总是失败
if (self as UIView) is UILabel { }
清除警告但不起作用。
所以有个问题:你说“我为故事板中的UILabel、UIButton和UITextField设置了这个类”
你能详细说明一下你做了什么吗?
您如何申报IBOutlet?基本视图?您在IB中为标签指定了什么类型?
因为BaseView不是UILabel的子类,所以我不能将标签声明为BaseView?