Дайте нижнее ограничение представлению в uitableviewcell, которое имеет большую высоту - PullRequest
0 голосов
/ 14 мая 2018

У меня есть следующий UITableViewCell, который содержит метку и изображение. Высота представления изображения постоянна, но высота надписи изменяется в соответствии с текстом.

Как я могу задать нижнее ограничение, чтобы высота метки была небольшой, тогда высота ячейки должна соответствовать размеру изображения, а если размер метки больше, то она должна соответствовать метке Я хочу, чтобы ячейка выглядела так, как на картинке enter image description here

1 Ответ

0 голосов
/ 19 мая 2018

Сначала укажите TableView rowHeight до UITableViewAutomaticDimension . Это позволит высота ячейки tableView расти в соответствии с его содержанием:

func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
        return UITableViewAutomaticDimension
    }

или

self.tableView.rowHeight = UITableViewAutomaticDimension

Поскольку сначала легко дать имя, чтобы иметь в своей таблице ViewCell: - ImageView, messageLabel, profileNameLabel и timeLabel.

Шаг1: Присвойте ограничения ImageView Вверх и Влево для superView ( Просмотр содержимого ) и timeLabel вправо для superView, также выровняйте Center Y в ImageView .

Шаг2: Теперь посередине задайте ограничение messageLable Сверху на superView , слева на imageView и справа на superView . Убедитесь, что messageLable номер строки не равен 0.

Step3: Затем укажите ограничение profileNameLable Top и Leading к messageLable .

Шаг 4: Так что теперь, чтобы сделать ваш tableViewCell Высота будет расти в соответствии с вашим содержанием (переменная messageLable высота) Присвойте свой profileNameLabel нижний предел больше, чем равный (> = ) ограничениям SuperView ( ContentView ), например, 20

enter image description here

также ImageView дно Более чем равно (> =) ограничения на SuperView ( ContentView ), например, 20. Таким образом, когда messageLabel будет иметь большую высоту будет выдвигать высоту ячейки , и когда она будет иметь нормальную высоту, ячейка будет брать высоту из вашего ImageView.

Терка затем равна (> =) Ограничение (это означает, что всегда нужно поддерживать margin , например, 20 пикселей пространства, чтобы оно могло превышать 20 пикселей, но не меньше этого )

enter image description here

...