Добавление кнопок с изображениями искажает представление стека - PullRequest
0 голосов
/ 20 апреля 2020

У меня есть 2 текстовых поля в просмотре стека, которые имеют в качестве входных данных средство выбора (сомневаюсь, что это имеет значение). Это первое прикрепленное изображение enter image description here

Теперь, когда я добавляю еще один горизонтальный вид стека и добавляю массив кнопок, он полностью искажает текстовые поля. enter image description here

Как это исправить? Строка кнопок должна иметь ту же высоту, что и текстовые поля на первом изображении.

И метки моих кнопок тоже не отображаются.

Вот код для горизонтального просмотра стека:

hStack?.translatesAutoresizingMaskIntoConstraints = false
        hStack?.topAnchor.constraint(equalTo: stackView.topAnchor, constant: 0).isActive = true
        hStack?.bottomAnchor.constraint(equalTo: stackView.bottomAnchor, constant: 0).isActive = true
        hStack?.leadingAnchor.constraint(equalTo: stackView.leadingAnchor, constant: 0).isActive = true
        hStack?.trailingAnchor.constraint(equalTo: stackView.trailingAnchor, constant: 0).isActive = true
        hStack = UIStackView(frame: CGRect(x: 0, y: 0, width: 100, height: 20))
        hStack?.axis = .horizontal
        hStack?.distribution = .fillEqually
        hStack?.spacing = 4
        allViews.append(hStack!)

А вот как я создаю кнопки:

let arrayOfDays = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]
        for index in 0...6 {
            let button  = UIButton(frame: CGRect(x: 0, y: 0, width: 10, height: 10))
            button.setImage(UIImage(named: "icon_unchecked"), for: .normal)
            button.setImage(UIImage(named: "icon_checked"), for: .selected)
            button.setTitle(arrayOfDays[index], for: .normal)
            button.addTarget(self, action: #selector(dayTapped(_:)), for: .touchUpInside)
            hStack?.addArrangedSubview(button)
        }

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...