Я создаю форму в виде таблицы.
Допустим, у меня есть 4 разных типа ячеек, каждый из которых представляет собой вопрос с разными типами ответов
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
if sortedFixedContentType.count != 0 {
let item = sortedFixedContentType[indexPath.row]
switch item.typeId {
case "1":
let cell = tableView.dequeueReusableCell(withIdentifier: "FirstCell", for: indexPath) as! FirstCell
return cell;
case "2":
let cell = tableView.dequeueReusableCell(withIdentifier: "SecondCell", for: indexPath) as! SecondCell
cell.customDelegate = self
return cell;
case "3":
let cell = tableView.dequeueReusableCell(withIdentifier: "ThirdCell", for: indexPath) as! ThirdCell
cell.commentsTextView.delegate = self
return cell;
case "4":
let cell = tableView.dequeueReusableCell(withIdentifier: "FourthCell", for: indexPath) as! FourthCell
return cell;
}
Когда tableViewзагружен Я хочу показать только первую ячейку, и в зависимости от ответа будут показаны разные ячейки.
Например:
На FirstCell можно ответить A , B или C ,
Если я отвечу, A SecondCell
будет отображаться с ответами X и Y .
Если X - это ответы, будет отображаться ThirdCell
(у которого нет опций, кроме TextField), а после завершения FourthCell
будет отображаться
Но , если в FirstCell
ответ будет B или C только FourthCell
будет отображаться напрямую.
В данный момент я делал этоизменив высоту строк в heightForRowAt
, хотя я думаю, что должен быть более простой способ.Однако я нахожу проблему:
Если я попадаю в textField в ThirdCell
, а затем меняю свой первый ответ, SecondCell
скрыт, а ThirdCell
нет, так как условие быловторой ответ, и он уже сделан, поэтому я подумал о том, чтобы установить высоту каждой строки в качестве условия, но я не знаю, как это сделать.
Итак, у меня есть два основных вопроса:
Можно ли получить доступ к heightForRowAt
, чтобы установить его как условие?
Должен ли я сделать это таким образом?или может есть лучший способ получить то что мне нужно?Я читал о динамическом добавлении и удалении строк в представлениях таблиц, но с тем же типом ячеек, поэтому решил вместо этого скрыть их по высоте.
Заранее спасибо!