Difference between frame and bounds; when is bounds ≠ 0?
In short
frame is the view's position and size in the superview's coordinates. bounds is the size and origin inside the view itself. Normally bounds.origin == (0, 0) and bounds.size == frame.size.
The rest of this answer, with code and interview follow-ups, is in the DevPrep app.
Read the full answer in DevPrep