I'm working on a ordering app with two different types of items.
Type One is plain product : Name at the top, some description, sizes, modifiers. Type Two is Multiple products : Product Type at the top, then name,descrition,sizes,modifiers.
I'm using tableview and so far I've create this TypeOne and now I'm trying to create type two. But type two is basically nested of typeOne. I want to use tableViews and don't want to rewrite the same logic and create same view twice.
I want to create the typeOne separately and make it reusable in typeTwo.
How can I create this reusable tableview.
I've attache the drawing for better understanding.

As EsatGozcu said in their comment, you need different types of table view cells.
Here's what I would do:
Set up different structs for the data you need to display your different types of cells. Have them both conform to a common protocol.
Have your model contain an array of your struct types.
In your table view's cellForRowAt method, fetch the model object for that IndexPath, interrogate it's type, and instantiate a cell type appropriate for displaying that type of model object.