2016-02-25 22 views
1

我有一個外UIStackView,具有以下屬性調用它outerStackViewUIStackView - 三個佈置子視圖與相對寬度

outerStackView.axis = .Horizontal 
outerStackView.distribution = .Fill 
outerStackView.spacing = 10 

outerStackView 3佈置已子視圖(把它們看成3列),這也發生在是UIStackViews。

我想將三個排列的子視圖(列)的寬度設置爲outerStackView寬度的相對乘數。

所以我試着這樣做:

leftColumnStackView = UIStackView() 
middleColumnStackView = UIStackView() 
rightColumnStackView = UIStackView() 

outerStackView.addArrangedSubview(leftColumnStackView) 
outerStackView.addArrangedSubview(middleColumnStackView) 
outerStackView.addArrangedSubview(rightColumnStackView) 

leftColumnStackView.widthAnchor.constraintEqualToAnchor(outerStackView.widthAnchor, multiplier: 0.4, constant: 0).active = true 
middleColumnStackView.widthAnchor.constraintEqualToAnchor(outerStackView.widthAnchor, multiplier: 0.4, constant: 0).active = true 
rightColumnStackView.widthAnchor.constraintEqualToAnchor(outerStackView.widthAnchor, multiplier: 0.2, constant: 0).active = true 

這引發了一堆自動佈局錯誤。

我將如何使這三列UIStackViews有一個相對寬度,以他們的父視圖?

+0

你能跟我們分享一下錯誤嗎? – PaulWoodIII

+0

看起來像10的間距和乘數不匹配。乘數結果爲100%,這意味着間距沒有剩餘空間。 – dasdom

+0

@dasdom - 你說得對,我不得不考慮間距。謝謝你的提示 – Alex

回答

1

我解決了這個問題,給出了左列和中列的相對寬度(考慮到它們之間的間距),右列簡單地填充了空間。

leftColumnStackView.widthAnchor.constraintEqualToAnchor(outerStackView.widthAnchor, multiplier: 0.38, constant: -20).active = true 
middleColumnStackView.widthAnchor.constraintEqualToAnchor(outerStackView.widthAnchor, multiplier: 0.38, constant: -20).active = true 
相關問題