Part of our game involves a code generated grid of letters. I'm using a UITable object which I fill with the letters, then call
myTable.Reposition(). For a while everything seemed fine but when we were looking more closely at things due to a bug we noticed that while the elements in the rows/columns line up, the columns themselves are not equidistant from each other. It's most easily seen when creating a table with zero padding:

Notice how the columns 4 and 5 (top letters are P and Y), and columns 9 and 10 (top letters are L and O) have different spacing. This has been confirmed by debug code.
I assume what's happening is that UITable.Reposition() will find out the minimum distance needed between columns based on the two widest elements next to each other, then adds the padding. Well, since fonts aren't equal sized in that creates inconsistencies.
The solution I was going to try was instead of creating the UITable out of font elements, I would create the table out of
(fontSize x fontSize) sprite elements, making them all the same size. Then after Reposition() is called, I'd go back through the grid and place each font element at the sprite element's transform.position.
I'm pretty sure that would work, but is there a way to toggle something in NGUI or UITable that would force consistent spacing between the columns based on the widest spacing needed or perhaps a hardcoded value and not based on elements with different widths?
Thanks!
-Mo