Динамическая высота UILabel

99
12

Я знаю, что о нем было задано много вопросов, но он не мог понять. У меня есть ярлык, который требует, чтобы его количество линий резко искажалось. Он работает с автоматической предпочтительной максимальной шириной, но не может заставить его работать, когда явный (я хочу поддерживать ios7).

Высота метки в настоящее время не увеличивается

Вот мой код:

-(void)viewDidLoad
{
[super viewDidLoad];
_feedBackLabel.numberOfLines = 0;
_feedBackLabel.lineBreakMode = NSLineBreakByWordWrapping;
_feedBackLabel.preferredMaxLayoutWidth = self.view.frame.size.width - 90;
[_feedBackLabel setContentHuggingPriority:UILayoutPriorityRequired
forAxis:UILayoutConstraintAxisVertical];
[_feedBackLabel setContentCompressionResistancePriority:UILayoutPriorityRequired forAxis:UILayoutConstraintAxisVertical];
}

-(void)setFeedback:(NSString*)response
{
self.feedBackLabel.text = response;
self.feedBackLabel.hidden = NO;
[self.feedBackLabel sizeToFit];
}

Я привязал свой ярлык к ведущему и конечному пространству к его супервину с приоритетом. Сопротивление объявлению и сжатию равно 750 по вертикальной оси. Метка имеет ограничение по высоте с приоритетом 500.

Спасибо, Гийом

спросил(а) 2020-04-03T23:59:49+03:00 5 месяцев, 4 недели назад
1
Решение
56

Удалите ограничение высоты с метки и запустите свой код.

ответил(а) 2020-04-04T00:13:26.772663+03:00 5 месяцев, 4 недели назад
40

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

благодаря

Гийом

ответил(а) 2020-04-03T23:59:49+03:00 5 месяцев, 4 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема