title: How to design a ViewController with complex TableView
body: <p>Imagine this scenario:<br></p>
  
  <ul>
  <li>I've 10 different and custom UITableViewCell: one with a textfield,
  one with a button, one with some labels, one with a textview, one
  with an imageView and so on.</li>
  <li>I've a ViewController with a tableView where I wanna display these cells.</li>
  <li>The number of cell displayed can vary based on some conditions (and also the height, the background color and other parameters)</li>
  <li>The user can interact with these cells</li>
  </ul>
  
  <p><br>
  What is the best way to design this in respect of the MVC and maintain the ViewController lightweight and maintainable as possible?<br>
  How to take advantage of Swift language in doing this?<br>
  Is there any famous and consolidate design pattern to apply?<br></p>