SmallVideo.h 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. //
  2. // SmallVideo.h
  3. // jiaPei
  4. //
  5. // Created by 张嵘 on 2020/8/11.
  6. // Copyright © 2020 JCZ. All rights reserved.
  7. //
  8. #ifndef SmallVideo_h
  9. #define SmallVideo_h
  10. //---------------------- About UI/Device ----------------------------
  11. #define iPhone4 ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(640, 960), [[UIScreen mainScreen] currentMode].size) : NO)
  12. #define iPhone5 ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(640, 1136), [[UIScreen mainScreen] currentMode].size) : NO)
  13. #define iPhone6 ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(750, 1334), [[UIScreen mainScreen] currentMode].size) : NO)
  14. #define iPhone6Plus ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(1242, 2208), [[UIScreen mainScreen] currentMode].size) : NO)
  15. #define iPhone6PlusScale ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(1125, 2001), [[UIScreen mainScreen] currentMode].size) : NO)
  16. #define iPhoneX ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(1125, 2436), [[UIScreen mainScreen] currentMode].size) : NO)
  17. #define iPhoneXR ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(828, 1792), [[UIScreen mainScreen] currentMode].size) : NO)
  18. #define iPhoneXM ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(1242, 2688), [[UIScreen mainScreen] currentMode].size) : NO)
  19. #define SL_SafeAreaEnable ((iPhoneX || iPhoneXR || iPhoneXM) ? YES : NO)
  20. #define SL_TopSafeAreaHeight (SL_SafeAreaEnable ? 44.f : 20.f)
  21. #define SL_TopNavigationBarHeight (SL_SafeAreaEnable ? 88.f : 64.f)
  22. #define SL_BottomTabbarHeight (SL_SafeAreaEnable ? (49.f + 34.f) : (49.f))
  23. #define SL_BottomSafeAreaHeight (SL_SafeAreaEnable ? (34.f) : (0.f))
  24. /// 屏幕宽高
  25. #define SL_kScreenWidth [UIScreen mainScreen].bounds.size.width
  26. #define SL_kScreenHeight [UIScreen mainScreen].bounds.size.height
  27. /** 判断是否为iPhone */
  28. #define isiPhone (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
  29. /** 判断是否是iPad */
  30. #define isiPad (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
  31. /** 判断是否为iPod */
  32. #define isiPod ([[[UIDevice currentDevice] model] isEqualToString:@"iPod touch"])
  33. //Get the OS version. 判断操作系统版本
  34. #define SL_IOSVERSION [[[UIDevice currentDevice] systemVersion] floatValue]
  35. #define SL_CurrentSystemVersion ([[UIDevice currentDevice] systemVersion])
  36. #define SL_CurrentLanguage ([[NSLocale preferredLanguages] objectAtIndex:0])
  37. //judge the simulator or hardware device 判断是真机还是模拟器
  38. #if TARGET_OS_IPHONE
  39. //iPhone Device
  40. #endif
  41. #if TARGET_IPHONE_SIMULATOR
  42. //iPhone Simulator
  43. #endif
  44. //---------------------- About Helper 辅助方法 ----------------------------
  45. /// 弱引用对象
  46. #define SL_WeakSelf __weak typeof(self) weakSelf = self;
  47. ///主线程操作
  48. #define SL_DISPATCH_ON_MAIN_THREAD(mainQueueBlock) dispatch_async(dispatch_get_main_queue(),mainQueueBlock);
  49. #define SL_GCDWithGlobal(block) dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), block)
  50. #define sl_GCDWithMain(block) dispatch_async(dispatch_get_main_queue(),block)
  51. ///NSUserDefaults 存储
  52. #define SL_UserDefaultSetObjectForKey(__VALUE__,__KEY__) \
  53. {\
  54. [[NSUserDefaults standardUserDefaults] setObject:__VALUE__ forKey:__KEY__];\
  55. [[NSUserDefaults standardUserDefaults] synchronize];\
  56. }
  57. ///NSUserDefaults 获得存储的对象
  58. #define SL_UserDefaultObjectForKey(__KEY__) [[NSUserDefaults standardUserDefaults] objectForKey:__KEY__]
  59. ///NSUserDefaults 删除对象
  60. #define SL_UserDefaultRemoveObjectForKey(__KEY__) \
  61. {\
  62. [[NSUserDefaults standardUserDefaults] removeObjectForKey:__KEY__];\
  63. [[NSUserDefaults standardUserDefaults] synchronize];\
  64. }
  65. /** 快速查询一段代码的执行时间 */
  66. /** 用法
  67. SL_StartTime
  68. do your work here
  69. SL_EndDuration
  70. */
  71. #define SL_StartTime NSDate *startTime = [NSDate date]
  72. #define SL_EndDuration -[startTime timeIntervalSinceNow]
  73. // STRING容错机制
  74. #define SL_IS_NULL(x) (!x || [x isKindOfClass:[NSNull class]])
  75. #define SL_IS_EMPTY_STRING(x) (SL_IS_NULL(x) || [x isEqual:@""] || [x isEqual:@"(null)"])
  76. #define SL_DEFUSE_EMPTY_STRING(x) (!SL_IS_EMPTY_STRING(x) ? x : @"")
  77. //沙河目录
  78. ///获取沙盒主目录路径
  79. #define SL_HomeDir NSHomeDirectory();
  80. /// 获取Documents目录路径
  81. #define SL_DocumentDir [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject]
  82. /// 获取Library的目录路径
  83. #define SL_LibraryDir [NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES) lastObject]
  84. /// 获取Caches目录路径
  85. #define SL_CachesDir [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) firstObject]
  86. /// 获取tmp目录路径
  87. #define SL_TmpDir NSTemporaryDirectory()
  88. //---------------------- About Color 颜色 ----------------------------
  89. /// 随机颜色
  90. #define SL_UIColorFromRandomColor [UIColor colorWithRed:arc4random()%255/255.0 green:arc4random()%255/255.0 blue:arc4random()%255/255.0 alpha:1.0]
  91. /// rgb颜色
  92. #define SL_UIColorFromRGB(r,g,b,a) [UIColor colorWithRed:(r)/255.0f green:(g)/255.0f blue:(b)/255.0f alpha:(a)]
  93. /// 16进制 颜色
  94. #define SL_UIColorFromHex(rgbValue, a) [UIColor colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 green:((float)((rgbValue & 0xFF00) >> 8))/255.0 blue:((float)(rgbValue & 0xFF))/255.0 alpha:(a)]
  95. //---------------------- About Log 打印日志 ----------------------------
  96. /// 打印
  97. //#ifdef DEBUG
  98. //# define NSLog(fmt, ...) NSLog((fmt), ##__VA_ARGS__);
  99. //# define SL_Log(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__);
  100. //#define SL_NSLog(...) printf("%f %s %ld :%s\n",[[NSDate date]timeIntervalSince1970],strrchr(__FILE__,'/'),[[NSNumber numberWithInt:__LINE__] integerValue],[[NSString stringWithFormat:__VA_ARGS__]UTF8String]);
  101. //#else
  102. //# define NSLog(fmt, ...)
  103. //# define SL_Log(...)
  104. //# define SL_NSLog(...)
  105. //#endif
  106. //---------------------- About Shader 着色器 ----------------------------
  107. //#x 将参数x字符串化
  108. #define STRINGIZE(x) #x
  109. #define STRINGIZE2(x) STRINGIZE(x)
  110. #define Shader_String(text) @ STRINGIZE2(text)
  111. #import "SLDelayPerform.h"
  112. #import "UIView+SLFrame.h"
  113. #import "SLAlertView.h"
  114. #import "SLMethod.h"
  115. #import "SLViewController.h"
  116. #endif /* SmallVideo_h */