2017-05-08 32 views
1

我有一個靜態表視圖類似如下:如何在不同的表格視圖單元中對齊標籤?

enter image description here

我該如何調整的兩個灰色標籤的前緣(即選擇一個類別,「這些都是意見」)沒有使用它們和視圖邊界之間的約束?

由於它們位於不同的表格視圖單元格中,因此無法在故事板中選擇它們以便向它們應用前沿約束。 (如果標籤的開始依賴於前一個標籤的後沿,那麼硬編碼值可能不會縮放到不同的設備大小。例如,如果「選擇類別」的前沿應該是固定的大小「,然後其絕對位置可以根據」類別「的字體大小等而變化,」這些是註釋「的前沿應該與」選擇類別「的前沿對齊, ,不能使用,因此硬編碼的值。)

+0

你能解決你的問題嗎?看看我的答案,並讓我知道它是否有幫助,或者是否需要澄清。謝謝! –

回答

0

你需要給兩個選擇一個類別這些註釋具有相同價值leading edge to container margin space。在下面的例子中,我給了60

enter image description here

enter image description here

如果你想在同一時間來改變這兩個值,你可以回到你的故事板,並同時改變的值60的值爲兩次(每個約束一次)。然而,一個更簡單的方法是將你的限制連接到IBOutlets並存儲恆定值在CGFloat的是這樣的:

@IBOutlet weak var leadingSpaceConstraint1: NSLayoutConstraint! 
@IBOutlet weak var leadingSpaceConstraint1: NSLayoutConstraint! 
let spaceConstraintConstant: CGFloat = 60 

然後在您的viewDidLoad()你必須:

leadingSpaceConstraint1.constant = spaceConstraintConstant 
leadingSpaceConstraint2.constant = spaceConstraintConstant 

現在,您只需更改spaceConstraintConstant的值即可更改所有單元的約束空間。

更新2017年5月16日

您編輯並在你的問題中指定要做到這一點「而不使用文本字段和視圖邊緣之間的約束。」

因爲你的內容是靜態的,你可以按照這個方法:

  1. 設置「類別」和「選擇一個類別」之間的距離限制。爲此做一個IBOutlet;稱它爲constraintA。
  2. 將「這些是註釋」的前導餘量約束設置爲任何值(設置值將在一秒內更改)。爲此約束設置一個IBOutlet;稱它爲constraintB。
  3. 在viewDidLoad()中設置constraintB的常量值等於constraintA加上「category」UILabel的長度。
+0

謝謝,但您的答案是在邊距和標籤的前沿之間使用硬編碼值。如果標籤的開始取決於前一個標籤的後沿,那麼硬編碼值可能無法縮放到不同的設備大小。例如,如果「選擇類別」的前沿應該是「類別」的後沿的固定尺寸,則其絕對位置可以根據「類別」的字體大小等而變化。 「這些是評論」的前沿應與「選擇類別」的前沿對齊,因此不能使用硬編碼值。 – Gruntcakes

+0

噢,好的。我不認爲你在原來的問題中已經說明了這一點,但我看到你編輯了這個問題。由於您的內容是靜態的,因此這種方法如何:1)在「類別」和「選擇類別」之間設置距離約束。爲此做一個IBOutlet;稱它爲constraintA。 2)將「這些是評論」的前導餘量限制爲任何值(設置值將在一秒內改變)。爲此約束設置一個IBOutlet;稱它爲constraintB。 3)在viewDidLoad()中設置constraintB的常量值等於constraintA加上「category」uilabel的長度。 –

相關問題