У меня возникло несколько проблем с вышеупомянутой проблемой. У меня есть метка в виде таблицы (X-300, Y-26, ширина-192 и высота-42), которая будет содержать случайные и неизвестные строки различной длины. Максимальное количество строк должно быть 2. Текст должен всегда находиться в верхней части метки.текст с вертикальным выравниванием в метке с заданным количеством строк
У меня есть рабочий раствор (ниже), но это только кажется так грязно - должна быть чище способ сделать то, что кажется так просто:
UILabel *cellLabel = (UILabel *)[cell viewWithTag:2];
// First set cell lines back to 0 and reset height and width of the label - otherwise it works until you scroll down as cells are reused.
cellLabel.numberOfLines = 0;
cellLabel.frame = CGRectMake(cellLabel.frame.origin.x, cellLabel.frame.origin.y, 192, 42);
// Set the text and call size to fit
[cellLabel setText:[[products objectAtIndex:indexPath.row] objectForKey:@"title"]];
[cellLabel sizeToFit];
// Set label back to 2 lines.
cellLabel.numberOfLines = 2;
// This 'if' solves a weird the problem when the text is so long the label ends "..." - and the label is slightly higher.
if (cellLabel.frame.size.height > 42) {
cellLabel.frame = CGRectMake(cellLabel.frame.origin.x, cellLabel.frame.origin.y, 192, 42);
}
Это не имеет ничего общего с xcode и, скорее, о UILabel, поэтому я удаляю тег Xcode и добавляю тег UILabel. –