У меня есть пользовательский UITableViewCell с UILabel с динамической высотой, в зависимости от его содержимого.Изменен размер UILabel при ошибке отображения UITableViewCell
Изменение размера UILabel отлично работает, но UILabel не отображает его содержимое правильно. Содержимое содержится в 1 или 2 строках, даже если оно имеет место в кадре It.
BUT Если я просматриваю UITableView и возвращаюсь к этим ячейкам, все отображается отлично.
Я хочу, чтобы ячейки отображались правильно, начиная начало без прокрутки.
Вот некоторые скриншоты до и после прокрутки:
Вот код, я использую для изменения размеров в UILabel:
CGSize expectedLabelSize = [titleText sizeWithFont:titleLabel.font
constrainedToSize:maximumLabelSize
lineBreakMode:titleLabel.lineBreakMode];
CGRect newFrame = titleLabel.frame;
newFrame.origin.y = 10;
newFrame.size.height = expectedLabelSize.height;
titleLabel.frame = newFrame;
accumulatedY += (expectedLabelSize.height + PADDING);
expectedLabelSize = [empresatext sizeWithFont:empresaLabel.font
constrainedToSize:maximumLabelSize
lineBreakMode:empresaLabel.lineBreakMode];
newFrame = empresaLabel.frame;
newFrame.size.height = expectedLabelSize.height;
newFrame.origin.y = accumulatedY;
empresaLabel.frame = newFrame;
accumulatedY += (expectedLabelSize.height + PADDING);
Для начала вам следует использовать '(CGRect) boundingRectWithSize: (CGSize) варианты размера: (NSStringDrawingOptions) Параметры контекста: (NSStringDrawingContext *) context' as 'sizeWithFont' устарел. Также не помешает убедиться, что ваша строка UILabel установлена на 0. – JMarsh
Также убедитесь, что вы вычисляете высоту ячейки в 'heightForRowAtIndexPath', вы можете изменить размер метки, но она не поместится, если ячейка не будет знаете, насколько высок контент. – JMarsh
Где именно вы вызываете код, который вы опубликовали? – RaffAl