我有一个从UIView继承的BaseView类,比如:

@IBDesignable class BaseView: UIView {
 override init(frame: CGRect) {
    super.init(frame: frame)
   }

 required init?(coder aDecoder: NSCoder) {
    super.init(coder: aDecoder)
   }
}

我在故事板中将这个类设置为UILabelUIButtonUITextField
现在,我必须认识到哪个UILabelUIButtonUITextField被称为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?

10-07 12:20
查看更多