Округление высоты ячейки таблицы в 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 высоту ячейки для ее размещения.