繁体   English   中英

如何找到称为解码器初始化程序的基类

[英]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中为UILabelUIButtonUITextField设置了此类。

现在,我必须认识到UILabelUIButtonUITextField中的哪一个被称为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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM