Как использовать Autolayout для размещения двух меток следующим образом? - PullRequest
0 голосов
/ 17 января 2020

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

Или они должны быть расположены в две строки. (они не могут поместиться в одну строку).

enter image description here

Можно ли реализовать это без Dynami c рассчитывать ширину надписей, но использовать только Autolayout?

Заранее спасибо .

Ответы [ 2 ]

0 голосов
/ 17 января 2020

Это не представляется возможным, используя автопутешествие в одиночку. Если вы не хотите создавать представления, основанные на вычислениях в коде, то, вероятно, единственный способ сделать что-то подобное - UICollectionView.

Вероятно, это будет излишним, но единственный способ сделать что-то подобное, кажется, сборный вид с вертикальным направлением прокрутки (вы можете отключить прокрутку и отскок, если он всегда будет соответствовать экрану).

Только элемент ячейки представления коллекции будет UILabel, и для ширины этой ячейки я предлагаю использовать ответ отсюда { ссылка } (или просто использовать UICollectionViewFlowLayout.automaticSize, если разрабатывается для iOS 10.0 или выше, этот ответ может быть полезен в этом случае: { ссылка })

Удачи!

0 голосов
/ 17 января 2020

для лучшего способа вы можете использовать UIStackview с горизонтальным или вертикальным выравниванием

private static let dynamicLabel1: UILabel = {
        let label = UILabel()
        label.textAlignment = .center
        label.numberOfLines = 0
        label.translatesAutoresizingMaskIntoConstraints = false
        label.textColor = .black
        return label
    }()

private static let dynamicLabel2: UILabel = {
            let label = UILabel()
            label.textAlignment = .center
            label.numberOfLines = 0
            label.translatesAutoresizingMaskIntoConstraints = false
            label.textColor = .black
            return label
        }()

fun addStackview() {
     let stackView = UIStackView()
     stackView.axis = .vertical
     stackView.distribution = .fill
     stackView.spacing = 2
     stackView.translatesAutoresizingMaskIntoConstraints = false
     stackView.addArrangedSubview(dynamicLabel1)
     stackView.addArrangedSubview(dynamicLabel2)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...