2016-03-29 3 views
0

У меня есть пользовательский вид, где я размещаю UIImageView и UILabel. Текст ярлыка может быть любого размера и динамически установлен, поэтому я установил метку numOfLines на 0.Невозможно установить высоту UILabel до ее высоты текста

Кроме того, я использую Autolayout. Изображение представляет собой значок, который я помещаю справа от метки, и мне нужен верхний край как значка, так и текста для выравнивания (а не верхней части метки). Я пробовал несколько способов избавиться от прокладки между ярлыком и его текстом внутри (sizeToFit, sizeThatFits) без успеха, мне нужна высота метки, чтобы точно соответствовать высоте текста, чтобы выровнять верхнюю часть текста текст со значком ... Как я мог это достичь?

+0

http://stackoverflow.com/questions/25180443/adjust-uilabel-height -печатать – Ujjwal

ответ

0

Если вы хотите установить динамическую высоту для метки в этом случае, сначала вам нужно проверить опцию prefferedmaxwidth в раскадровке/xib для этой метки, а затем установить ограничения uilabel.

последовательности, чтобы установить ограничения на этикетку: - 1. Верхнего 2. ведущего 3. отставая

Это поднимет предупреждение, если текущая высота этикетки отличается, чем требуется. Если это так, выберите опцию «Обновить фреймы» для этой метки.

сейчас установить нижнее ограничение.

Не нужно называть метод sizetofit. Autolayout рассчитает высоту для вас

0

Вы можете изменить высоту этикетки, изменяя ограничение высоты этикетки с помощью следующего кода,

CGSize size = [@"your text" boundingRectWithSize:CGSizeMake(label.bounds.size.width, 10000) options:(NSStringDrawingUsesFontLeading|NSStringDrawingUsesLineFragmentOrigin) attributes:@{NSFontAttributeName : @"FontName"} context:nil].size; 

labelHeightConstraint = size.height; 
Смежные вопросы