Как сжать дополнительную обивку в верхней и нижней части UILabel - PullRequest
1 голос
/ 06 июля 2019

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

Но работает так же отлично, когда текст метки dummyDescription больше.Проблема возникает только когда dummyDescriptionLabel меньше.

enter image description here

Ниже приведены мои ограничения, которые добавляются программно

NSLayoutConstraint.activate([
            self.dummyImageView.leadingAnchor.constraint(equalTo: self.leadingAnchor, constant: 24),
            self.dummyImageView.topAnchor.constraint(equalTo: self.topAnchor,constant:24),
            self.dummyImageView.widthAnchor.constraint(equalToConstant: 105),
            self.dummyImageView.heightAnchor.constraint(equalToConstant: 67),

            self.dummyNameLabel.topAnchor.constraint(equalTo: self.dummyImageView.topAnchor),
            self.dummyNameLabel.leadingAnchor.constraint(equalTo: self.dummyImageView.trailingAnchor, constant: 16),
            self.dummyNameLabel.trailingAnchor.constraint(equalTo: self.trailingAnchor, constant: -24),

            self.dummyDescriptionLabel.topAnchor.constraint(equalTo: self.dummyImageView.bottomAnchor, constant: 16),
            self.dummyDescriptionLabel.leadingAnchor.constraint(equalTo: self.dummyImageView.leadingAnchor),
            self.dummyDescriptionLabel.trailingAnchor.constraint(equalTo: self.trailingAnchor, constant: -24),


            self.dummyButton.topAnchor.constraint(equalTo: self.dummyDescriptionLabel.bottomAnchor, constant: 5),
            self.dummyButton.leadingAnchor.constraint(equalTo: self.dummyImageImageView.leadingAnchor),
            self.readMoreButton.heightAnchor.constraint(equalToConstant: 20)
        ])

У меня также естьустановить ниже тех, все еще не повезло

self.dummyNameLabel.setContentHuggingPriority(UILayoutPriority.defaultHigh, for: .horizontal)
self.dummyDescriptionLabel.setContentHuggingPriority(UILayoutPriority.defaultHigh, for: .horizontal)

Любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 07 июля 2019

Приоритет удержания контента должен быть установлен для вертикальных ограничений.т.е.

   self.dummyNameLabel.setContentHuggingPriority(UILayoutPriority.defaultHigh, for: .horizontal)
   self.dummyDescriptionLabel.setContentHuggingPriority(UILayoutPriority.defaultHigh, for: .horizontal)

следует заменить на:

    self.dummyNameLabel.setContentHuggingPriority(UILayoutPriority.defaultHigh, for: .vertical)
    self.dummyDescriptionLabel.setContentHuggingPriority(UILayoutPriority.defaultHigh, for: .vertical)

Таким образом, рамка меток всегда будет соответствовать высоте внутреннего содержимого.

АналогичноЧтобы предотвратить обрезание содержимого меток по их границам, можно установить приоритет вертикального сжатия на значение по умолчанию.

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