2015-05-04 2 views
3

я поставил в UITableViewCellUIlabel Я хочу сделать высоту UITableViewCell динамически, поэтому я добавляю некоторые ограничения с UILabel, При входе в UIViewController, метка и высота UITableViewCell не является правильным, но если Я прокручивать UITableViewCell из экрана и прокрутить его обратно на экран, то он работает правильно, это странно.UILabel autoLayout не работает нормально

Это мои ограничения в раскадровке

enter image description here

UILabel в TableViewCell при входе в UIViewController

enter image description here

Это Shoule быть

enter image description here

меня попробовать добавить код (переопределить UILabel)

-(void)layoutSubviews{ 
    self.preferredMaxLayoutWidth = self.frame.size.width; 
    [super layoutSubviews]; 
} 

и установить содержание с приоритетом 1000 000

+0

ваша целевая платформа iOS8? или iOS7? – Gasim

+0

как в iOS7, так и в iOS8 – jansma

ответ

0

Вы можете связать свои ограничения с кодом IBOutlet. Поэтому просто попробуйте с ограничением высоты, который программно изменяется с высотой UITableViewCell.

0

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

enter image description here

или вы можете попробовать

[lable sizeToFit]; 

после установки значения строки на этикетке может исправить эту проблему.

0

Измените приоритет нижнего пространственного ограничения на «Низкий». Его борьба с содержанием обниматься

0

Используйте эти ограничения согласно вам требования:
Название Контрактное:image1


текст Lable:
и textLabel.numberOfLines = 0;

image2

Выход

enter image description here
Следуйте этим ссылкам Autolayout или Autolayout programatically

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