Q:

Call addSubView within layoutSubviews

Is it ok to add subviews within a layoutSubviews call? 
Given that layoutSubviews is your hook point to customize sub view frame, it's not clear if addition of further sub views may cause problems. 

A:

You can, but it’s not a great idea—-layoutSubviews is meant for laying out subviews, not creating them, and it can be called at more or less any time for a whole host of reasons.  Creating views there won’t cause problems as long as you keep track of what views you’ve added already and don’t recreate them, but it’s bad practice.  Create subviews in your initializer, or lazily as you need them elsewhere, and keep your -layoutSubviews as light as possible.