Just observation about layout method callback in custom classes
If you present your view as a sheet it appears on an orientation change on an I pad you don't get a call to layout, which is great as it has the same bounds.
Regardless in my layout code I cache the frame(after rework) and check that in the beginning of the layout code to see if the current frame (after rework) and the last frame are the same. If so, I return. Maybe it is stupid, I notice I get 2 calls to layout on start up. From there seems to be ok. But in the dark ages, getting multiple redundant events was normal. If you didn't look for them in your code you took a big performance hit. It appears omz has nailed it. But I will leave the checking code in just in case. I Should probably raise an error.
Anyway, just thinking out aloud.