В swift, как добавить кнопку, используя для l oop в виде стека в представлении прокрутки? - PullRequest
0 голосов
/ 20 февраля 2020

Я добавил в них два вида прокрутки и два вертикальных стека соответственно. Ограничения уже установлены. Я соединил два представления стека в виде коллекций розеток в ViewController.swift. Предположим, у меня есть массив строк, скажем,

. Я хотел добавить несколько кнопок (таких же, как длина меток) в представлении верхнего стека, используя для l oop. Как мне это сделать? И поскольку представление стека находится в режиме прокрутки, нужно ли указывать расстояние между двумя кнопками?

Мой код указан ниже.

    @IBOutlet var topStackView: [UIStackView]!
    @IBOutlet var bottomStackView: [UIStackView]!
    @IBOutlet weak var enterItemTextField: UITextField!
    let labels = ["a", "b", "c", "d", "e"]


    override func viewDidLoad() {
        super.viewDidLoad()
        enterItemTextField.delegate = self

        var buttons = [UIButton()]
        for _ in 0..<labels.count {

            let button = UIButton(type: UIButton.ButtonType.system)
            # some operations on button
            buttons.append(button)
        }
        # what do I do here?

    }

В представлении стека меньше свободы для настройки местоположений , Я удалил вид из стека и прямо помещаю кнопки в вид с прокруткой.

1 Ответ

0 голосов
/ 20 февраля 2020

Вам нужно это после

buttons.append(button)
topStackView.addArrangedView(button)

Кстати, для одного предмета вам не нужна коллекция, чтобы быть

@IBOutlet var topStackView: UIStackView!
@IBOutlet var bottomStackView: UIStackView!

вместо

@IBOutlet var topStackView: [UIStackView]!
@IBOutlet var bottomStackView: [UIStackView]!

Нужно ли указывать расстояние между двумя кнопками?

нет, не нужно, но вы можете сделать это

topStackView.spacing = 20
...