Another custom layout in UI Forms is a variation of the RowLayout. 
If we configure RowLayout to place children vertically (in 
columns), and to make all controls the same with within the column, we would get 
several columns (depending on the width of controls), but the last column would 
typically not be completely filled (depending on the number of controls). Again, 
if placed in a form, we would get all the controls in one column because 
RowLayout cannot do 'vertical' wrapping. If we use GridLayout, 
we must choose the number of columns up front and live with the choice.
There are situations in more complex forms where we want the number of 
columns to be adaptive. In other words, we would like the number to change 
depending on the width of the form - use more when possible, drop the number 
down as the width decreases. We would also like to fill the form area more-less 
equally (with all the columns roughly the same height). All this can be achieved 
with ColumnLayout.
Compared to TableWrapLayout, ColumnLayout is much 
simpler. Hardly any configuration is needed. The only choice you need to make is 
the range of columns you want to have (default is 1 to 3).