2015-09-30 3 views
0

У меня есть обычай UITableViewCell, как показано ниже:пользовательское UITableViewCell с выпуском Автокомпоновка

enter image description here

Мое изображение имеет фиксированную ширину и высоту, мое описание метка заполняет оставшуюся ширину и имеет автоматическую высоту на основе его содержание.

Это создает проблему, потому что, в зависимости от высоты надписи описания, для прикрепления нижней части моей ячейки никогда не существует фиксированного якоря.

Итак, в настоящее время у меня есть ограничение от нижней части изображения до нижней границы поля ячейки с отношением> = 0. Аналогичным образом, у меня есть ограничение на нижнюю часть ярлыка описания с отношением > = 0.

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

У меня такое чувство, что это может быть связано с сопротивлением контенту и сжатием, но оба вида - 251 и 750 соответственно. (Я поиграл с ними, но не повезло - я их не совсем понимаю)

Как успешно использовать автомасштабирование, чтобы прикрепить нижнюю часть ячейки к изображению, когда описание меньше изображения? И наоборот?

+0

Update, когда клетка прокручивается от экрана и reshown при прокрутке вернемся к нему, кажется, что он выглядит правильно ... –

+0

Есть ли у вас предупреждение об ограничении времени выполнения? – ppaulojr

+0

проверить WWDC 2015 тайны авто макет часть 1, вторая часть - то, что вы хотите, я думаю. И просветление – Wingzero

ответ

0

Вы можете удалить нижний ограничитель с метки и установить вертикальное сжатие содержимого и вертикальное сжатие содержимого до 1000 (обязательно). В основном это означает, что ярлык может иметь неограниченную вертикальную высоту, пока он обнимает контент. Проблема в том, что если описание очень длинное, оно пройдет через нижнюю часть ячейки, в результате чего текст станет срезанным срединным. Чтобы избежать этой головной боли, установите максимальный номер метки и режим прерывания линии для «усечения хвоста».

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

Для динамической высоты ячейки, изменить нижнюю Ограничить изображения и описания ярлык == затем добавить эти два метода к вашему ViewController:

-(CGFloat)tableView:(UITableView *)tableView estimatedHeightForRowAtIndexPath:(NSIndexPath *)indexPath{ 
    return 100; // min cell height 
} 
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{ 
    return UITableViewAutomaticDimension; 
} 
+0

Проще говоря, я никогда не хочу, чтобы текст описания был отрезан. Ячейка также никогда не должна быть меньше, чем отрезать изображение. –

+0

@ Ответ Wingzero был тем, что я искал –

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