以下情况会调用:
1. view或者view.subview的size改变
2. setNeedsLayout、addSubview会调用
3. initWithFrame传入的frame的size的width和height至少有一个不为0
以下情况不会调用:
1. view或view.subview的center改变, initWithFrame传入的frame的size为0的时
2. view进行transform动画
3. layoutIfNeeded不会调用