我有一个自定义的UIView子类,其布局在.xib文件中定义。
我使用类方法创建instaces,该方法从应用程序包中加载xib,如下所示:
class CustomTitleView: UIView
{
@IBOutlet weak var titleLabel: UILabel!
@IBOutlet weak var infoButton: UIButton!
class func instance() -> CustomTitleView
{
return UINib(nibName: "CustomTitleView", bundle: nil).instantiateWithOwner(self, options: nil)[0] as! CustomTitleView
}
}
此代码按预期工作。我将此视图用作视图控制器中的自定义导航标题。
xib具有自动布局限制:
接下来,我希望对标签添加width
约束,并将其连接到上面代码中的插座,以便我可以在运行时控制它(以处理文本截断时间过长等。 )。
xib的文件所有者设置为我的自定义类。 我将宽度约束中的“新引用插座”连接到我班级的新插座:
@IBOutlet weak var widthConstraint:NSAutolayoutConstraint!
当我运行我的代码时,它在此行崩溃:
return UINib(nibName: "CustomTitleView", bundle: nil).instantiateWithOwner(self, options: nil)[0] as! CustomTitleView
错误:
此类不是键值widthConstraint
的键值编码兼容
我缺少什么?
注意:以下任何一项都没有帮助
答案 0 :(得分:0)
我看到的唯一奇怪的事情是使用 NSAutoLayoutConstraint 而不是 NSLayoutConstraint 。