YXBarTools.m 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. //
  2. // YXBarTools.m
  3. // Temperature
  4. //
  5. // Created by z on 2025/1/20.
  6. //
  7. #import "YXBarTools.h"
  8. @implementation YXBarTools
  9. /// 顶部安全区高度
  10. + (CGFloat)safeDistanceTop {
  11. if (@available(iOS 13.0, *)) {
  12. NSSet *set = [UIApplication sharedApplication].connectedScenes;
  13. UIWindowScene *windowScene = [set anyObject];
  14. UIWindow *window = windowScene.windows.firstObject;
  15. return window.safeAreaInsets.top;
  16. } else if (@available(iOS 11.0, *)) {
  17. UIWindow *window = [UIApplication sharedApplication].windows.firstObject;
  18. return window.safeAreaInsets.top;
  19. }
  20. return 0;
  21. }
  22. /// 底部安全区高度
  23. + (CGFloat)safeDistanceBottom {
  24. if (@available(iOS 13.0, *)) {
  25. NSSet *set = [UIApplication sharedApplication].connectedScenes;
  26. UIWindowScene *windowScene = [set anyObject];
  27. UIWindow *window = windowScene.windows.firstObject;
  28. return window.safeAreaInsets.bottom;
  29. } else if (@available(iOS 11.0, *)) {
  30. UIWindow *window = [UIApplication sharedApplication].windows.firstObject;
  31. return window.safeAreaInsets.bottom;
  32. }
  33. return 0;
  34. }
  35. /// 顶部状态栏高度(包括安全区)
  36. + (CGFloat)statusBarHeight {
  37. if (@available(iOS 13.0, *)) {
  38. NSSet *set = [UIApplication sharedApplication].connectedScenes;
  39. UIWindowScene *windowScene = [set anyObject];
  40. UIStatusBarManager *statusBarManager = windowScene.statusBarManager;
  41. return statusBarManager.statusBarFrame.size.height;
  42. } else {
  43. return [UIApplication sharedApplication].statusBarFrame.size.height;
  44. }
  45. }
  46. /// 导航栏高度
  47. + (CGFloat)navigationBarHeight {
  48. return 44.0f;
  49. }
  50. /// 状态栏+导航栏的高度
  51. + (CGFloat)navigationFullHeight {
  52. return [YXBarTools safeDistanceTop] + [YXBarTools navigationBarHeight];
  53. }
  54. /// 底部导航栏高度
  55. + (CGFloat)tabBarHeight {
  56. return 49.0f;
  57. }
  58. /// 底部导航栏高度(包括安全区)
  59. + (CGFloat)tabBarFullHeight {
  60. return [YXBarTools statusBarHeight] + [YXBarTools safeDistanceBottom];
  61. }
  62. @end