You will find your answer here.
EDIT: copied directly from the blog:
- init does not call layoutSubviews (duh)
- addSubview causes display of layoutSubviews in the added view, the view of its addition in (target view) and all subzones of the target view
- setFrame intelligently calls layoutSubviews in a view that has its frame only if the frame size parameter is different
- UIScrollView layoutSubviews scrollView
- layoutSubview ( viewControllers)
- removeFromSuperview - layoutSubviews