This commit is contained in:
2025-11-06 15:16:03 +08:00
parent a1db745b6c
commit 41aec6b89e
5 changed files with 93 additions and 3 deletions

View File

@@ -76,3 +76,4 @@ static inline CGFloat KBFit(CGFloat designValue) {
#ifndef KBWeakSelf
#define KBWeakSelf __weak __typeof(self) weakSelf = self;
#endif

View File

@@ -25,10 +25,13 @@
[self setupMas:topV];
// sheetVC
HomeSheetVC *vc = [[HomeSheetVC alloc] init];
if (<#condition#>) {
<#statements#>
// 使 true
if (KB_DEVICE_HAS_NOTCH) {
vc.minHeight = KB_SCREEN_HEIGHT - topV - 34;
}else{
vc.minHeight = KB_SCREEN_HEIGHT - topV;
}
vc.minHeight = KB_SCREEN_HEIGHT - topV;
vc.topInset = 100;
[self presentPanModal:vc];
}

View File

@@ -31,3 +31,31 @@
#ifndef KB_KEYCHAIN_ACCESS_GROUP
#define KB_KEYCHAIN_ACCESS_GROUP @"TN6HHV45BB.com.loveKey.nyx.shared"
#endif
// --- 设备特性是否为带刘海机型iPhone X 及以后异形屏)---
// 说明:在 iPhone 12 等机型底部会有 34px 安全区,这里通过安全区来判断是否为“刘海屏”。
// 注意:使用到 UIKit这里自行引入避免依赖 PCH 的包含顺序。
#import <UIKit/UIKit.h>
static inline BOOL KBDeviceHasNotchRuntime(void) {
if (@available(iOS 11.0, *)) {
UIWindow *window = nil;
if (@available(iOS 13.0, *)) {
for (UIScene *scene in UIApplication.sharedApplication.connectedScenes) {
if (scene.activationState == UISceneActivationStateForegroundActive && [scene isKindOfClass:[UIWindowScene class]]) {
UIWindowScene *ws = (UIWindowScene *)scene;
for (UIWindow *w in ws.windows) { if (w.isKeyWindow) { window = w; break; } }
if (window) { break; }
}
}
if (!window) { window = UIApplication.sharedApplication.windows.firstObject; }
} else {
window = UIApplication.sharedApplication.keyWindow;
}
return window.safeAreaInsets.bottom > 0.0;
}
return NO;
}
#ifndef KB_DEVICE_HAS_NOTCH
#define KB_DEVICE_HAS_NOTCH (KBDeviceHasNotchRuntime())
#endif

View File

@@ -99,4 +99,34 @@ static inline CGFloat KB_StatusBarHeight(void) {
#define KB_IS_IPHONEX_SERIES (KB_SafeAreaBottom() > 0.0)
// --- 设备特性是否为带刘海机型iPhone X 及以后异形屏)---
// 说明:在 iPhone 12 等机型底部会有 34px 安全区,这里通过安全区来判断是否为“刘海屏”。
// 注意:使用到 UIKit这里自行引入避免依赖 PCH 的包含顺序。
#import <UIKit/UIKit.h>
static inline BOOL KBDeviceHasNotchRuntime(void) {
if (@available(iOS 11.0, *)) {
UIWindow *window = nil;
if (@available(iOS 13.0, *)) {
for (UIScene *scene in UIApplication.sharedApplication.connectedScenes) {
if (scene.activationState == UISceneActivationStateForegroundActive && [scene isKindOfClass:[UIWindowScene class]]) {
UIWindowScene *ws = (UIWindowScene *)scene;
for (UIWindow *w in ws.windows) { if (w.isKeyWindow) { window = w; break; } }
if (window) { break; }
}
}
if (!window) { window = UIApplication.sharedApplication.windows.firstObject; }
} else {
window = UIApplication.sharedApplication.keyWindow;
}
return window.safeAreaInsets.bottom > 0.0;
}
return NO;
}
#ifndef KB_DEVICE_HAS_NOTCH
#define KB_DEVICE_HAS_NOTCH (KBDeviceHasNotchRuntime())
#endif
#endif /* KeyBoardPrefixHeader_pch */

View File

@@ -31,3 +31,31 @@
#ifndef KB_KEYCHAIN_ACCESS_GROUP
#define KB_KEYCHAIN_ACCESS_GROUP @"TN6HHV45BB.com.loveKey.nyx.shared"
#endif
// --- 设备特性是否为带刘海机型iPhone X 及以后异形屏)---
// 说明:在 iPhone 12 等机型底部会有 34px 安全区,这里通过安全区来判断是否为“刘海屏”。
// 注意:使用到 UIKit这里自行引入避免依赖 PCH 的包含顺序。
#import <UIKit/UIKit.h>
static inline BOOL KBDeviceHasNotchRuntime(void) {
if (@available(iOS 11.0, *)) {
UIWindow *window = nil;
if (@available(iOS 13.0, *)) {
for (UIScene *scene in UIApplication.sharedApplication.connectedScenes) {
if (scene.activationState == UISceneActivationStateForegroundActive && [scene isKindOfClass:[UIWindowScene class]]) {
UIWindowScene *ws = (UIWindowScene *)scene;
for (UIWindow *w in ws.windows) { if (w.isKeyWindow) { window = w; break; } }
if (window) { break; }
}
}
if (!window) { window = UIApplication.sharedApplication.windows.firstObject; }
} else {
window = UIApplication.sharedApplication.keyWindow;
}
return window.safeAreaInsets.bottom > 0.0;
}
return NO;
}
#ifndef KB_DEVICE_HAS_NOTCH
#define KB_DEVICE_HAS_NOTCH (KBDeviceHasNotchRuntime())
#endif