我想知道是否有辦法從子類訪問約束。我有一個自定義的視圖。我不確定是否可以訪問我已經在UI中設置的約束,所以我嘗試從子類本身創建約束。子類中的快速約束條件
class PerformanceView: UIView {
func initialize() {
let heightConstraint = NSLayoutConstraint(item: self, attribute: .Height, relatedBy: .Equal, toItem: superview, attribute: .Height, multiplier: 0.47, constant: 0);
superview.addConstraint(heightConstraint)
}
}
上述代碼不完整。只是顯示我正在嘗試做什麼。所以有兩個問題。
1)我可以從子類訪問UI上的約束嗎? 2)如果不是,我如何在子視圖中創建一個高度約束,該高度是超視圖高度的一半。
而且我確實有PerformanceView作爲視圖的類,因爲您可以看到它們都在左側顯示「性能視圖」。其中4個。
只需添加一個可選的(如果你想暗示解開)'NSLayoutConstraint'財產,有這個'initialize'方法更新它,而不是使其成爲一個局部變量。順便說一句,我可能會爲這個方法選擇一個不同的名稱,因爲這會引起與從NSObject繼承的'initialize'類方法的混淆。 – Rob