2016-11-13 31 views
0

在我UIStoryBoard我有以下情況:我如何在ios中的故事板中的一組元素上使用約束?

enter image description here

一個UIViewController有兩個元素 - 一個按鈕和一個標籤。 每個組件上的文本都是從localized.strings中獲取的,因此每次用戶選擇不同的語言時都會有不同的長度。 在我的代碼有:

myButton.setTitle("TextOnButton".localized(), for: .normal) 
myButton.sizeToFit() 
txtLabel.text = "txt".localized() 

我應該如何附上約束,使這兩個因素 - 當組合在一起 - 總是在中心?例如:

這是不是在中間:

enter image description here

這是在中間:

enter image description here

如果它只是一個元素,我會附上約束midX這就是全部,但是當有兩個元素的情況呢?我可以 - 不知何故 - 將約束附加到一組元素上?

回答

3

你可以通過Stack View的幫助來實現。故事板中選擇這兩個標籤,然後點擊下面的按鈕:
StackViewButton

層次結構中的你會發現,這兩個標籤得到了一個包裹裏面Stack View。現在您只需將Horizontally in ContainerVertically in Container約束添加到堆棧視圖。最後,當選擇stack view時,可以在屬性檢查器中的兩個標籤之間添加一些Spacing
最後的結果是:
Final result

+0

HM,看起來真的很不錯,但是當我加入這兩個元素,比如你寫了(和我沒有你所說的到底是什麼) - 突然棧去巨大的......我去的時候性能我看到這個:http://imgur.com/sXDPKWL它看起來像一個xcode錯誤,我不能改變這個值...它是xcode 8.1 – user3766930

+0

這有點奇怪,因爲堆棧視圖通常會使標籤的大小「適合內容」。無論如何,爲'stack view'或/和這兩個標籤添加一些限制,你應該很好。
jeanggi90

相關問題