With nib you can design the custom cell only once for use in any number of classes, then you will only have to attach outlets with the nib; while with storyboard, for each screen you will have to make the custom cell and attach the outlets.
So if the cell is required for only one screen , you may go for storyboard else use nib.
Both ways you can have custom height
You can use nib or storyboard to define your custom uitableviewcell .You have to set identifier for uitableviewcell to access it in code.
To create custom uitableviewcell with dynamic height:
UITableViewCell with dynamic height iOS