I am new to IOS programming. But the workflow I have, as I understand it is:
ViewController gets initialized, and creates the grid with CGRectZero as its frame. Immediately adds it as a subview.
Autolayout happens (sometime after viewDidLoad, and before viewDidLayoutSubviews)
At this point, we know the calculated sizes of the frames that are done by autolayout.
So we can ask for what that calculated frame really was, and hand it off to the grid for its own manual layout.
I have zero clue how it'd work in the face of device rotation, and similar changes in sizes, but luckily that's not relevant for my specific use case.