I also noticed that sometimes it will still position itself slightly off, but it only happens sometimes. I wondered if maybe the position stuff was taking up some time and not being finished by the time the script was checking the bounds. So I hacked in a few frame delay (count to 10) from checking the bounds and now it works well, but that hack bothers me. Is there a nice way to know the table has finished beautifying itself?
Inside the table I have a bunch of ui elements, which stretch themselves based on the view rect size. The table's padding also gets defined by a similar measurement. I imagine that the table finishes moving stuff around, but then the padding gets updated...and somehow somewhere in the middle the bounds get checked (until I delayed it). In code, everything is done in the logical order...change padding, check bounds, move table.