ZZFrame.m 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. //
  2. // ZZFrame.m
  3. // FBSnapshotTestCase
  4. //
  5. // Created by Max on 2021/1/11.
  6. //
  7. #import "ZZFrame.h"
  8. #import <ZZUIKit/ZZUIKitTools.h>
  9. CGFloat SCREEN_H(){
  10. return [UIScreen mainScreen].bounds.size.height;
  11. }
  12. CGFloat SCREEN_W(){
  13. return [UIScreen mainScreen].bounds.size.width;
  14. };
  15. bool is_X_like(void){
  16. BOOL isBangsScreen = NO;
  17. if (@available(iOS 11.0, *)) {
  18. UIWindow *window = [[UIApplication sharedApplication].windows firstObject];
  19. isBangsScreen = window.safeAreaInsets.bottom > 0;
  20. }
  21. return isBangsScreen;
  22. }
  23. CGFloat NAV_BAR_H(void){
  24. return 44;
  25. };
  26. CGFloat STATUS_BAR_H(void){
  27. CGFloat height;
  28. if (@available(iOS 13.0, *)) {
  29. height = [UIApplication sharedApplication].delegate.window.windowScene.statusBarManager.statusBarFrame.size.height;
  30. }else{
  31. height = [UIApplication sharedApplication].statusBarFrame.size.height;
  32. // return is_X_like() ? 44 : 20;
  33. }
  34. return height;
  35. };
  36. CGFloat NAV_STATUS_BAR_H(void){
  37. return NAV_BAR_H() + STATUS_BAR_H();
  38. }
  39. CGFloat TABBER_BAR_H(void){
  40. return is_X_like() ? 83 : 49;
  41. };
  42. CGFloat BOTTOM_PADDING(void){
  43. return is_X_like() ? 34 : 0;
  44. }
  45. //屏幕缩放比例
  46. CGFloat zz_adapt(CGFloat value){
  47. CGFloat screenW = [UIScreen mainScreen].bounds.size.width;
  48. CGFloat ratio = screenW/375.0;
  49. return zz_adaptRatio(value,ratio);
  50. }
  51. CGFloat zz_adaptRatio(CGFloat origin,CGFloat ratio){
  52. return origin * ratio;
  53. }
  54. //屏幕y0点
  55. CGFloat zz_screenOriginY(void){
  56. return [ZZViewHierarchy ZZCurrentViewController].navigationController.navigationBar.translucent ? NAV_STATUS_BAR_H() : 0;
  57. }