2016-10-27 51 views
-1

我想根據我的視圖控制器的高度來設置視圖的高度。這是我的代碼。iOS - 瞭解NSLayoutConstraint乘數

self.view.addConstraints([ 
      self.view.topAnchor.constraint(equalTo: someView.topAnchor), 
      self.view.leftAnchor.constraint(equalTo: someView.leftAnchor), 
      self.view.rightAnchor.constraint(equalTo: someView.rightAnchor), 
      self.view.heightAnchor.constraint(equalTo: someView.heightAnchor, multiplier: 20.0, constant: 0.0) 
      ]) 

我想的身高是視圖控制器的總高度的20%。我現在得到的結果是不正確的。當我改變乘數時,的高度不會改變。

我在做什麼錯?

UPDATE

0.2示出了不正確的結果。 Someview出現比視圖控制器大

回答

0

您正在讀取的參數不正確。 20表示您希望視圖的高度比someView的高度大20倍。你想要的是視點的20%,所以你需要乘以0.2。

self.view.heightAnchor.constraint(equalTo: someView.heightAnchor, multiplier: 0.2, constant: 0.0) 
+0

0.2顯示不正確的結果。 Someview出現比視圖控制器大 – imstillalive

+0

我沒有意識到視圖應該是視圖控制器。反轉約束:someView.heightAnchor.constraint(equalTo:view.heightAnchor,multiplier:0.2,constant:0.0)。傳統上,您將新約束表達爲子視圖與超視圖的關係。 –