### 【問題】
使用IOS9之前的SDK,轉屏會有幾個函數會被響應。
1.轉屏前回調函數
- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)durationNS_DEPRECATED_IOS(3_0,8_0,"Implement viewWillTransitionToSize:withTransitionCoordinator: instead")__TVOS_PROHIBITED;
2.轉屏后回調函數
- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientationNS_DEPRECATED_IOS(2_0,8_0)__TVOS_PROHIBITED;
可是在IOS9的SDK中不能再使用了,那我們該如何處理呢?
### 【分析】
根據幫助文檔的信息,讓我們改用下面這個函數
- (void)viewWillTransitionToSize:([CGSize](https://developer.apple.com/library/ios/documentation/GraphicsImaging/Reference/CGGeometry/index.html#//apple_ref/doc/c_ref/CGSize))`size
`???????withTransitionCoordinator:(id<[UIViewControllerTransitionCoordinator](https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIViewControllerTransitionCoordinator_Protocol/index.html#//apple_ref/occ/intf/UIViewControllerTransitionCoordinator)>)`coordinator;`
可是怎么區分轉屏前后呢?
我們看到第二個參數coordinator,它的類型是[UIViewControllerTransitionCoordinator](https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIViewControllerTransitionCoordinator_Protocol/index.html#//apple_ref/occ/intf/UIViewControllerTransitionCoordinator),它能響應VC轉換進度,并且提供了以下方法:
- (BOOL)animateAlongsideTransition:(void (^)(id<[UIViewControllerTransitionCoordinatorContext](https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIViewControllerTransitionCoordinatorContext_Protocol/index.html#//apple_ref/occ/intf/UIViewControllerTransitionCoordinatorContext)> context))`animation
`????????????????????????completion:(void (^)(id<[UIViewControllerTransitionCoordinatorContext](https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIViewControllerTransitionCoordinatorContext_Protocol/index.html#//apple_ref/occ/intf/UIViewControllerTransitionCoordinatorContext)> context))`completion;`
### 【解決方法】
~~~
- (void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id <UIViewControllerTransitionCoordinator>)coordinator
{
[coordinator animateAlongsideTransition:^(id<UIViewControllerTransitionCoordinatorContext> context)
{
NSLog(@"轉屏前調入");
} completion:^(id<UIViewControllerTransitionCoordinatorContext> context)
{
NSLog(@"轉屏后調入");
}];
[super viewWillTransitionToSize:size withTransitionCoordinator:coordinator];
}
~~~