2013-04-29 3 views
0

У меня есть UIView, содержащий только один UILabel. Этот UILabel используется для отображения некоторой информации, которая может иметь разную длину. Я вычисляю высоту UILabel с использованием метода [label.text sizeWithFont:label.font constrainedToSize:label.bounds.size lineBreakMode:label.lineBreakMode]. Но как изменить размер UIView на высоту UILabel?Как изменить высоту UIView в зависимости от высоты UILablel внутри?

ответ

2
[label.superview setFrame:label.frame]; 

Это в принципе должно делать. Возможно, вы захотите добавить немного логики и создать несколько полей/paddings. Значит, вам придется разделить self.frame на координаты, добавить смещения и создать новый кадр из него с помощью CGFrameMake и назначить это кадру супервизора.

[label.superview setFrame: CGFrameMake(0, 0, label.frame.size.width + 2*label.frame.origin.x, label.frame.size.height + 2*label.frame.origin.y)]; 

Возьмите второе, как правило, как sugestion. Он установит начало координат 0, потому что кадр макета может не равняться 0. Затем он добавляет место для некоторого запаса вокруг макета, предполагая, что левое поле и правое совпадают, а верхний край и нижнее поле тоже одинаковы ,

+0

Спасибо. Я использовал второй. Это сработало. – Geek

Смежные вопросы