Округление высоты ячейки таблицы в Swift

Мне нужно вычислить высоту ячейки таблицы и округлить ее до делимого значения на 5. Например, когда размер ячейки равен 116, правильная высота должна быть 120.

Дело в том, что я использую адаптивный макет для расчета высоты ячейки. Одним из подпредставлений UITableViewCell является вертикальная пунктирная линия, которая должна соединиться с ячейкой ниже. Пунктирная линия состоит из повторения 5 точек - тире (2 балла) и разрыва (3 балла). Таким образом, высота линии должна быть округлена до значения, кратного 5, для правильного соединения с пунктирной линией ячейки, которая находится ниже.

Две ячейки с пунктирной линией

1 ответ

Предполагая, что вы хотите округлить только, если значение НЕ уже кратно 5, тогда что-то вроде этого полезно: нам нужно специально округлить CGFloat (что измеряет UIViews):

let currentHeight = CGFloat(123.456)
let newHeight = ((currentHeight + 4.99) / 5).rounded(.down) * 5
=> 125

let currentHeight = CGFloat(125)
let newHeight = ((currentHeight + 4.99) / 5).rounded(.down) * 5
=> 125

Я бы установил высоту ячейки, кратную пяти, а высоту вида пунктирной линии - одинаковой. (Я думаю, это то, что вы намеревались, просто убедившись).

Не забывайте, что вам нужно установить высоту ячейки таблицы и высоту tableCell.contentView. Кроме того, вам нужно сообщить UITableView высоту ячейки для ее размещения.

Другие вопросы по тегам