Я пытаюсь установить высоту tableView динамически в Xib. Но все элементы динамически меняются в представлении xib, и я не достиг позиции «y» последнего элемента перед представлением таблицы.
Я пробовал что-то подобное, но это не сработало. Оно отображается в верхней части mainView.
techTableView = mainView?.technicalTableView
self.techTableView?.frame = CGRect(
x: 0,
y: (self.techTableView?.topAnchor.constraint(equalTo: (mainView?.productInformation.bottomAnchor)!, constant: 25).constant)! ,
width: self.view.frame.size.width,
height: 35)
tableView. Я установил высоту ячейки.
вам не нужно рассчитывать размер ячейки каждый раз, используя UITablviewAutomaticDimension, который автоматически вычисляет размер ячейки, просто убедитесь, что вы указали правильные ограничения





Ваш код кажется сбивающим с толку, вы пытаетесь установить фрейм табличного представления, используя якоря, что не так, как это работает. Если вы хотите сделать это с помощью ограничений настройки, вам следует сделать это после добавления табличного представления, независимо от значения его фрейма.
Итак, после того, как вы убедились, что techTableView добавлен в его супервизор (например: view.addSubview(tableView)), вам нужно будет реализовать следующее:
tableView.translatesAutoresizingMaskIntoConstraints = false
// x axis:
tableView.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: 0.0).isActive = true
// y axis:
tableView.topAnchor.constraint(equalTo: mainView?.productInformation.bottomAnchor, constant: 25.0).isActive = true
// width:
tableView.widthAnchor.constraint(equalTo: view.widthAnchor, multiplier: 1.0).isActive = true
// height:
tableView.heightAnchor.constraint(equalToConstant: 35.0).isActive = true
На этом этапе он должен отображаться так, как ожидалось, он был обработан ограничениями, без необходимости редактирования кадра (по умолчанию это CGRect.zero).
Используйте привязки макета для установки ограничений вместо установки фрейма. Вы можете сделать что-то вроде этого, чтобы установить ограничения вашего tableview:
techTableView.translatesAutoresizingMaskIntoConstraints = false
techTableView.leadingAnchor.constraint(equalTo: self.view.leadingAnchor).isActive = true
techTableView.trailingAnchor.constraint(equalTo: self.view.trailingAnchor).isActive = true
techTableView.topAnchor.constraint(equalTo: mainView.bottomAnchor).isActive = true
techTableView.heightAnchor.constraint(equalToConstant: 35).isActive = true
Спасибо, чувак.
вы хотите изменить высоту табличного представления или ячейки табличного представления?