UIWindow+BBAInterfaceOrientations.h 1.58 KB
//
//  UIWindow+BBAInterfaceOrientations.h
//  
//
//  Created by qfu on 3/21/16.
//  Copyright © 2016 qfu. All rights reserved.
//

#import <UIKit/UIKit.h>

/**
 *  AUTOROTATE_SAFETY_BEGIN 与 AUTOROTATE_SAFETY_END 是用来做奇特的屏幕旋转动画保护的。
 *  当UI方向横向并要导航到不知道横向的页面时,会优先选择屏幕到肖像方向,在进行导航。
 *  AUTOROTATE_SAFETY_BEGIN & AUTOROTATE_SAFETY_END 一定要成对使用
 */
#define AUTOROTATE_SAFETY_BEGIN [UIWindow bba_autorotateSafetyInitPush:^{
#define AUTOROTATE_SAFETY_END }];

/**
 *  AUTOROTATE_PORTRAIT_SAFETY_BEGIN 与 AUTOROTATE_PORTRAIT_SAFETY_END 是用来做奇特场景下,强制竖屏处理的。
 *  当UI方向横向并要导航到竖屏页面时,会强制屏幕到竖屏 !!!。
 *  AUTOROTATE_PORTRAIT_SAFETY 一定要pop/push之前使用
 */

#define AUTOROTATE_PORTRAIT_SAFETY [UIWindow bba_autorotatePortraitSafety:^{}];


@interface UIWindow (BBAInterfaceOrientations)

- (void)bba_updateToInterfaceOrientation:(UIInterfaceOrientation)orientation animated:(BOOL)animated;
- (void)bba_updateToInterfaceOrientation:(UIInterfaceOrientation)orientation completion:(void (^ __nullable)(BOOL finished))completion;

+ (void)bba_autorotateSafetyInitPush:(void (^ __nullable)(void))block;
+ (void)bba_autorotateSafetyInitPop:(void (^ __nullable)(void))block;

+ (void)bba_autorotatePortraitSafetyInitPop:(void (^ __nullable)(void))block;

+ (void)bba_autorotatePortraitSafetyInitPush:(void (^ __nullable)(void))block;

+ (void)bba_autorotatePortraitSafety:(void (^ __nullable)(void))block;

@end