2017-03-28 25 views
2

我在Swift 3中以編程方式設置約束,並且有一個關於約束的問題。如果我沒有設置高度約束,但設置了topAnchorbottomAnchor,那麼這是否也會執行相同的操作?如果沒有設置高度限制,是否重要?

self.squadTableView.translatesAutoresizingMaskIntoConstraints = false 
self.squadTableView.centerXAnchor.constraint(equalTo:  self.view.centerXAnchor).isActive = true 
self.squadTableView.widthAnchor.constraint(equalTo: self.view.widthAnchor).isActive = true 
self.squadTableView.topAnchor.constraint(equalTo: self.view.topAnchor, constant: 0).isActive = true 
self.squadTableView.bottomAnchor.constraint(equalTo: self.view.bottomAnchor).isActive = true 

相比取出bottomAnchor約束,然後做

self.squadTableView.heightAnchor.constraint(equalTo: self.view.heightAnchor).isActive = true 

回答

1

有上,如果他們被錨定到的東西,有足夠的約束下就足夠了。您只需要確定位置和大小的約束條件,但它可以是任何組合。

+0

我不明白。假設你有4個標籤,從上到下,你將如何使用自動佈局來定位這些標籤。我的意思是你有三種約束:第一個標籤和頂部視圖,在兩個標籤之間,最後一個標籤和底部視圖。我將如何指定這些約束條件,以便它不會過多地拉伸空間,也不會拉伸標籤本身的高度?我會給百分比空間/距離/高度還是隻是固定的金額(iPhone5,6加上iPad mini,iPad Air,iPad Pro不同)。我只是想一個粗略的想法,不需要代碼... – Honey

+1

@Honey約束不需要等於一個數字,它們可以設置爲<=。您可能需要指定約束並使用優先級,以便知道哪個優先。你也可以對另一個產生約束==,但使用乘數 - 這是執行基於百分比的常規方法。如果你想要更多的細節,最好的辦法是寫一個問題 –

+0

你也可以爲不同大小的類提供不同的約束。 –

相關問題