2016-10-17 72 views
1

本質上,我試圖創建一個具有頂部邊距和底部邊距的元素的UIStackView。例如設置堆棧視圖內某些元素的空間

| item one | 
| item two | 
|   | 
| itemfour | 

我已嘗試添加一個spacerView:

let textField1 = UITextField(text: "one") 
let textField2 = UITextField(text: "two") 
let textField3 = UITextField(text: "four") 
let spacerView = UIView(frame: CGRect(x: 10, y: 10, width: 100, height: 100)) 

viewStack.addSubView(textField1) 
viewStack.addSubView(textField2) 
viewStack.addSubView(spacerView) 
viewStack.addSubView(textField3) 

但是,我設置的spacerView似乎並沒有影響其在堆棧視圖中創建的空間高度。

PS:如果將兩個項目之間的頂部和底部邊緣的一個更好的辦法,我如添加一個UIView肯定願意將那感覺真是哈克

回答

0

,你可以:

  1. 做一個spacer視圖,這是一個UILabeltext單個空間(" ")。這會給你一個與你的文本其餘部分高度相同的空白行。如果發行版設置爲fillEqually(這也適用於其他模式,但我提到它,因爲distribution在下面的選項#2中很重要)。

,或者

  • 創建的UIView子類,並覆蓋其intrinsicContentSize,返回一個CGSize,用於指定要的高度。不要設置此視圖的frame(即讓UIStackView管理視圖的框架)。請注意,此方法僅適用於UIStackView的分配是而不是設置爲fillEqually