Я пытаюсь выровнять UITableView
по размеру абзацев по высоте в UITextView
. Пример: Временные метки слева - это то, что я пытаюсь сделать.Я изменил свой код, чтобы использовать UIView вместо TVcells, чтобы увидеть, что было не так, и вы можете видеть, что оранжевый вид перекрывает голубой, что означает, что на самом деле представления не совпадают, а перекрываются. ПРИМЕЧАНИЕ. Я хочу использовать TableView, а не UIView У меня возникли проблемы с пониманием того, как рассчитывается высота текста в iOS.Я использую приведенный ниже код, чтобы получить высоту каждого paragraph
:
let liveParagraphView = textView.selectionRects(for: txtRange).reduce(CGRect.null) { $0.union($1.rect) }
После этого я вычисляю высоту каждого из них и затем подаю его в мой UITableView heightForRowAt
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
let models = getParagraphModel()
let height = models[indexPath.row].height
let finalHeight = models[indexPath.row].height
let heightValue = finalHeight
return CGFloat(heightValue);
}
Каждая строка имеет разные значения высоты, но даже при использовании этих значений она не выравнивается.Кажется, проблема в том, что каждая строка вычисляет позицию Y, которая не находится непосредственно под линией перед ней.Это НА ВЕРХЕ !! В результате UITableView не выравнивается при добавлении новых ячеек, и это «наложение» selectionRects не учитывается.Я прав?Как я мог добиться этого?