IOS9开始如何处理转屏

【问题】
使用IOS9之前的SDK,转屏会有几个函数会被响应。
1.转屏前回调函数

- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)durationNS_DEPRECATED_IOS(3_0,8_0,"Implement viewWillTransitionToSize:withTransitionCoordinator: instead")__TVOS_PROHIBITED;
2.转屏后回调函数
【IOS9开始如何处理转屏】
- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientationNS_DEPRECATED_IOS(2_0,8_0)__TVOS_PROHIBITED;
可是在IOS9的SDK中不能再使用了,那我们该如何处理呢? 【分析】
根据帮助文档的信息,让我们改用下面这个函数
- (void)viewWillTransitionToSize:(CGSize)size
withTransitionCoordinator:(id)coordinator;

可是怎么区分转屏前后呢?
我们看到第二个参数coordinator,它的类型是UIViewControllerTransitionCoordinator,它能响应VC转换进度,并且提供了以下方法:
- (BOOL)animateAlongsideTransition:(void (^)(id context))animation
completion:(void (^)(id context))completion;

【解决方法】

- (void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id )coordinator { [coordinator animateAlongsideTransition:^(id context) { NSLog(@"转屏前调入"); } completion:^(id context) { NSLog(@"转屏后调入"); }]; [super viewWillTransitionToSize:size withTransitionCoordinator:coordinator]; }



    推荐阅读