Use layout subviews

This makes the layout more dynamic fixing issues when creating the view with `CGRectZero`, when changing the orientation or when using auto layout.