1
我有一個自定義的UIView子類,其佈局是在.xib文件中定義的。將Outlet連接到自定義視圖中的約束從xib文件實例化導致崩潰
創建instaces與從應用程序的包加載廈門國際銀行,像這樣一類方法:
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
與錯誤:
This class is not key value coding-compliant for the key widthConstraint
我錯過了什麼?
注:有下列情形的幫助
- 乾淨生成文件夾,然後重建。
- 斷開插座並重新連接。
- 將插座連接到另一個(現有)約束。