[英]How to find the base class which called the Decoder initialiser
我有一个从UIView继承的BaseView类,例如:
@IBDesignable class BaseView: UIView {
override init(frame: CGRect) {
super.init(frame: frame)
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
}
我在情节UITextField
中为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? BaseView? 您在IB中将哪种类型分配给标签? 因为BaseView不是UILabel的子类,所以无法将标签声明为BaseView?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.