1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- //
- // BRPickerViewMacro.h
- // BRPickerViewDemo
- //
- // Created by renbo on 2018/4/23.
- // Copyright © 2018 irenb. All rights reserved.
- //
- // 最新代码下载地址:https://github.com/91renb/BRPickerView
- #ifndef BRPickerViewMacro_h
- #define BRPickerViewMacro_h
- #import <UIKit/UIKit.h>
- // 底部安全区域高度
- #define BR_BOTTOM_MARGIN \
- ({CGFloat safeBottomHeight = 0;\
- if (@available(iOS 11.0, *)) {\
- safeBottomHeight = BRGetKeyWindow().safeAreaInsets.bottom;\
- }\
- (safeBottomHeight);})
- // 静态库中编写 Category 时的便利宏,用于解决 Category 方法从静态库中加载需要特别设置的问题
- #ifndef BRSYNTH_DUMMY_CLASS
- #define BRSYNTH_DUMMY_CLASS(_name_) \
- @interface BRSYNTH_DUMMY_CLASS_ ## _name_ : NSObject @end \
- @implementation BRSYNTH_DUMMY_CLASS_ ## _name_ @end
- #endif
- // 打印错误日志
- #ifdef DEBUG
- #define BRErrorLog(...) NSLog(@"reason: %@", [NSString stringWithFormat:__VA_ARGS__])
- #else
- #define BRErrorLog(...)
- #endif
- /** RGB颜色(16进制) */
- static inline UIColor *BR_RGB_HEX(uint32_t rgbValue, CGFloat alpha) {
- return [UIColor colorWithRed:((CGFloat)((rgbValue & 0xFF0000) >> 16)) / 255.0
- green:((CGFloat)((rgbValue & 0xFF00) >> 8)) / 255.0
- blue:((CGFloat)(rgbValue & 0xFF)) / 255.0
- alpha:(alpha)];
- }
- /** 获取 keyWindow */
- static inline UIWindow *BRGetKeyWindow(void) {
- UIWindow *keyWindow = nil;
- #if __IPHONE_OS_VERSION_MAX_ALLOWED >= 130000 // 编译时检查SDK版本(兼容不同版本的Xcode,防止编译报错)
- if (@available(iOS 13.0, *)) { // 运行时检查系统版本(兼容不同版本的系统,防止运行报错)
- NSSet<UIScene *> *connectedScenes = [UIApplication sharedApplication].connectedScenes;
- for (UIScene *scene in connectedScenes) {
- if (scene.activationState == UISceneActivationStateForegroundActive && [scene isKindOfClass:[UIWindowScene class]]) {
- UIWindowScene *windowScene = (UIWindowScene *)scene;
- for (UIWindow *window in windowScene.windows) {
- if (window.isKeyWindow) {
- keyWindow = window;
- break;
- }
- }
- }
- }
- } else
- #endif
- {
- #if __IPHONE_OS_VERSION_MIN_REQUIRED < 130000
- return [UIApplication sharedApplication].keyWindow;
- #endif
- }
-
- return keyWindow;
- }
- #endif /* BRPickerViewMacro_h */
|