Если я делаю заказ UITableViewCell
, и мне нужно, чтобы он имел переменную высоту в зависимости от длины ввода (например, для читателя Twitter или что-то еще), как я могу это сделать Работа?heightForRowAtIndexPath с пользовательской ячейкой и меткой
Я нашел здесь множество других примеров, которые могут установить его для стандартной нестандартной ячейки, но основная текстовая метка моей ячейки меньше и т. Д., Поэтому, когда я пытаюсь использовать любой из этих методов на моя ячейка, они дают множество странных результатов (текст перекрывает нижнюю часть ячейки и т. д.)
Существует ли стандартизированный способ проектирования ячейки (например, насколько высок я должен сделать это в Interface Builder?) , и, допустим, мой ярлык был половиной ширины этой ячейки. Как бы я мог рассчитать высоту ячейки, которая должна отображаться в строке, загруженной в эту метку? Вот метод, который я нашел здесь, который отлично работает на нормальной ячейке, но прикручивает пользовательские с необычными высотами, перекрывающимся текстом и т. Д .: (я абсолютно НЕ знаю, что здесь делает 300/200000, если кто-нибудь может объяснить, d быть благодарными, тоже!)
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
CGSize textSize = {300.f, 200000.0f};
CGSize size = [[_quoteStringsFromPlist objectAtIndex: indexPath.row] sizeWithFont: [UIFont systemFontOfSize:12.0f] constrainedToSize: textSize lineBreakMode: NSLineBreakByWordWrapping];
size.height += 5.0f;
float result = MAX(size.height, 32.0f);
return result;
}
Вы можете сделать все это в построителе интерфейса (если вы с этим согласны). В IB выберите таблицу и измените высоту строки. Затем выберите ячейку и выберите пользовательскую высоту ячейки и введите тот же номер. Надеюсь, поможет! – Groot
Это не сработало, боюсь. Кажется, что клетки находятся на разных высотах, но короткие имеют массу пространства выше/ниже их, а более длинные - обрезаны. Я установил высоту строки до 90 в обоих местах. – Luke