iOS中view.frame 的变化过程:
1、在layoutSubviews(UIView)或viewWillLayoutSubviews(UIViewController)之前frame就已经发生变化;
2、如果设置了autoResizingMask,在旋转设备时,willRotateToInterfaceOrientation frame没有发生变化,didRotateFromInterfaceOrientation frame已经发生变化;
3、如果设置了autoResizingMask,view的frame改变是在superView的frame变化时,同时发生变化;
变化流程示意如下:
willChangeFrame(willRotateToInterfaceOrientation) ——> setFrame ——> viewWillLayoutSubviews ——> viewDidLayoutSubviews ——> didChangeFrame ——> (didRotateFromInterfaceOrientation)