In portrait mode, I have four views from above each other from top to bottom of the view controller (see image).

Then I want to change the position of the views relative to each other when the device goes into landscape mode (see image two). 
I want view 4 to move along with views 2 and 3, and they all sit under image 1.
Some layout conditions:
- view 1 is attached to the top of the view controller in both landscape and portrait mode.
- view 4 is attached to the left, right, and lower margins of the view controller in portrait mode.
- Views 2, 3, and 4 are arranged horizontally in portrait mode.
What is the best method to achieve different layouts?
viewWillTransition? , ( , 2, 3 4, , , 4 )?