2017-04-27 55 views
1

我的水平堆棧視圖中有5個元素。在一點上,我隱藏索引1和2的元素。我有1pt的間距,看起來當元素1和2被隱藏時,元素0和3之間的間距是元素0和1,1之間的間距的總和,1和2,2和3。 我的堆棧視圖屬性是:即使排列的子視圖隱藏,UIStackView似乎也會堆疊空間

stackView.axis = .horizontal 
stackView.distribution = .fillEqually 
stackView.spacing = 1pt 

我的問題是:我怎樣才能消除這些間隔的總和。在我看來,它不應該表現得如此。所以我錯過了什麼?

+1

您可能需要*從堆棧中刪除*視圖 - 只是隱藏它們不會消除間距。 – DonMag

+1

我認爲它違背了與stackview的排列子視圖鏈接的isHidden屬性的目的。 – Plot

+1

從蘋果的文檔:*「顯示,從堆棧中刪除被第一個佈置看法的觀點仍然是堆棧裏面,它只是不再可見,並且不再有助於佈局。」 * - 如此,**查看**不再對佈局作出貢獻,但由於它仍然是「在那裏」,因此**間距**值仍被使用。 (注意:我不爲Apple工作 - 只是我的解釋) – DonMag

回答

0

我遇到了同樣的問題,所以我想。在我的情況下,問題的原因是我錯誤地隱藏了視圖的單個子元素而不是視圖(以前是堆棧視圖的直接後裔的子元素),因此視圖看起來不會被渲染它是。更改隱藏實際視圖使問題消失。

總之,我有一個UILabel它被添加到我隱藏/取消隱藏的UIStackView。後來,我將標籤嵌入到視圖中,並錯過了更改隱藏/取消隱藏的插座,所以我一直玩標籤,導致它的父級仍然在堆棧視圖中呈現(高度爲零)。

+0

我不知道我明白。 「觀點的獨子」是什麼意思? – Plot

+0

@Plot我更新了答案,讓我知道如果現在是有道理的。 – Cristik

相關問題