Я недавно узнал о UIStackView
и пытаюсь asp понять разницу между применением Auto Layout индивидуально к каждому элементу пользовательского интерфейса самостоятельно и использованием представления стека.
Допустим, у вас есть 5 UILabels
, и вы хотите их равномерно распределить. Я могу использовать что-то вроде Auto Layout Anchors:
var previous: UILabel?
for label in [label1, label2, label3, label4, label5] {
label.heightAnchor.constraint(equalToConstant: 88).isActive = true
if let previous = previous {
label.topAnchor.constraint(equalTo: previous.bottomAnchor, constant: 10).isActive = true
} else {
label.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor, constant: 0).isActive = true
}
previous = label
}
или Visual Format Language:
let viewsDictionary = ["label1": label1, "label2": label2, "label3": label3, "label4": label4, "label5": label5]
view.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "V:|[label1(labelHeight@999)]-[label2(label1)]-[label3(label1)]-[label4(label1)]-[label5(label1)]-(>=10)-|", options:[], metrics: metrics, views: viewsDictionary))
или использовать представление стека и установить параметр распределения на equalSpacing
вдоль основного оси.
Это грубые примеры, но правильно ли я понимаю, что вы можете почти все, что делает представление стека, с помощью якорей автоматического макета или языка визуального формата, но представление стека упрощает это?
Или есть исключительные преимущества использования представления стека, которые нельзя сделать с помощью Auto Layout Anchors или Visual Format Language?