Células de tabela dobráveis [Swift 3] [duplicado]

Esta pergunta já tem uma resposta aqui:

Célula da tabela de acordeão - como expandir / contratar dinamicamente a célula uitableview? 5 respostas

Estou tentando recriar o selecionador de data recolhível que o aplicativo de calendário usa ao criar um novo evento. Eu coloquei um exemplo do que estou tentando fazergithub

Em suma, eu criei uma tabela estática, adicionei três células. A primeira célula é para a data e contém um botão para alternar a segunda célula. A segunda célula é o selecionador de data. A terceira célula é arbitrária. No código, estou tentando definir a altura da célula da tabela (e o seletor de datas, se necessário) para zero e alternar o tamanho sempre que o usuário clicar no botão. Não importa o que eu tentei, não posso a) fazer a célula entrar em colapso sem algum tipo de lacuna e 2) fazer com que a animação faça a transição suave de expandida para recolhida e vice-versa.

Editar: Esta pergunta não é a mesma que a resposta duplicada, pois eu queria expandir uma célula de tabela separada e não a mesma célula que estava sendo selecionada. Mas, pessoalmente, posso viver usando uma expansão da mesma célula. Também atualizei meu projeto no github para que futuras pessoas possam ver um exemplo de trabalho.

questionAnswers(1)

yourAnswerToTheQuestion