UIView(とおまけでUIViewController)のLifecycle
UIViewControllerのLifecycleは馴染み深く、よく使うしわかりやすいので覚えているから困らないけど、たまにUIViewのLifecycleの知識が必要になるときがある。
名前と処理と呼ばれる順序が脳内で一致していないので、ひとまず順序だけでもまとめておこうと思い記載。
backgroundcolorをセットするとsetNeedsDisplayが追加で呼ばれたりと、
Objectに対して行う処理で複雑化するが、最低限呼ばれるのは下記処理のようだ。
UIViewのLifecycle
// alloc & init処理 01. -[CustomView setNeedsDisplay] 02. -[CustomView setNeedsDisplay] // addSubview処理 03. -[CustomView willMoveToSuperview:] 04. -[CustomView didMoveToSuperview] 05. -[CustomView willMoveToWindow:] 06. -[CustomView didMoveToWindow] 07. -[CustomView layoutSubviews] 08. -[CustomView drawRect:] // 表示完了 // removeFromSuperview処理 09. -[CustomView willMoveToSuperview:] 10. -[CustomView willMoveToWindow:] 11. -[CustomView didMoveToWindow] 12. -[CustomView didMoveToSuperview] 13. -[CustomView removeFromSuperview]
UIViewControllerと内包しているUIViewを合わせたLifecycle
// UIViewController 01. -[UIViewController loadView] 02. -[UIViewController viewDidLoad] 03. -[UIViewController viewWillAppear:] // UIView 04. -[UIView viewWillLayoutSubviews] 05. -[UIView viewDidLayoutSubviews] 06. -[UIView viewWillLayoutSubviews] 07. -[UIView viewDidLayoutSubviews] // UIViewController 08. -[UIViewController viewDidAppear:] 09. -[UIViewController viewWillDisappear:] // UIView 10. -[UIView viewWillLayoutSubviews] 11. -[UIView viewDidLayoutSubviews] // UIViewController 12. -[UIViewController viewDidDisappear:] 13. -[UIViewController dealloc]