2016-03-14 91 views
1

我正在使用自定義UIableViewCell,其中有四個UILabel s。在自定義UITableViewCell中使用自動佈局

我目前苦苦掙扎的是,對於較小的iPhone,我能夠得到正確的肖像佈局(數字對應於標籤號碼)。

enter image description here

我試圖較大的iPhone做(下面的截圖是從6SPlus)是具有標籤3移動箭頭的方向:

enter image description here

我有第三個標籤的三個限制。我的想法是讓他們的一個1000的優先級設置爲「基本約束」,而另一個,設置爲999,以改變細胞的間距:

enter image description here

然而,這不是似乎沒有任何效果。如何使用基於尺寸等級的約束來更改第三個標籤的位置?謝謝!

編輯:這是我想要去一個近似的例證:

enter image description here

+0

你的意思是你希望它「動」?你想把它固定在標籤2上嗎?爲什麼不在標籤2和3之間設置水平間距約束,而不是在3和4之間設置約束? – almas

+0

最簡單的選擇是定義一個容器'UIView',它可以左右放大(每邊設置一個固定的水平間距),然後將標籤「3」自動水平居中放置在該容器視圖內。每個「3」標籤當然應該有一個固定的寬度,所以它們看起來是一樣的。 –

+0

@AlejandroIván問題在於標籤從API中提取數據,所以這些值不會總是固定的長度。 – narner

回答

0

使用UIStackView,並把您的標籤裏面。堆棧視圖可以配置爲均勻分佈您的四個標籤,不管桌子的寬度在更大或更小的手機上啓動時,桌子的寬度如何增長或縮小,都可以在它們之間放置相同的空間量。因此,你會看起來無處不在。

(如果你不能夠使用UIStackView,你甚至可以達到使用隱形間隔的意見分佈同樣的效果。)

+0

我很願意這樣做,但不幸的是,該應用程序的最低目標是iOS 8:/ – narner

+0

好吧,然後使用不可見的spacer視圖來實現相同的結果。這實際上是UIStackView有效的功能(除非它們不是視圖,但效果相同)。 – matt

+0

請參閱我的討論:http://stackoverflow.com/a/20865342/341994它是垂直而不是水平的,但原理完全相同。 – matt