iTools.h 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201
  1. //
  2. // iTools.h
  3. // VclustersGemini
  4. //
  5. // Created by 余衡武 on 2020/4/1.
  6. // Copyright © 2020 APPLE. All rights reserved.
  7. //
  8. #import <Foundation/Foundation.h>
  9. NS_ASSUME_NONNULL_BEGIN
  10. @interface iTools : NSObject
  11. #pragma mark 字典、数组转JSONString
  12. /** 字典转JSONString */
  13. + (NSString *)getJSONStringFromDictionary:(NSDictionary *)dict;
  14. /** 数组转JSONString */
  15. + (NSString *)getJSONStringFromArray:(NSArray *)array;
  16. #pragma mark 时间戳
  17. /** 获取当前时间戳-以秒为单位-return NSInteger */
  18. + (NSInteger)getNowTimeStamp;
  19. /** 获取当前时间戳-以秒为单位-return yyyy/MM/dd HH:mm */
  20. + (NSString *)getNowTimeString;
  21. /** 获取当前时间戳-以秒为单位-return yyyyy年MM月dd日 HH:mm:ss */
  22. + (NSString *)getNowTimeString1;
  23. /** 获取当前时间戳-以秒为单位-return yyyyy-MM-dd HH:mm:ss */
  24. + (NSString *)getNowTimeString2;
  25. + (NSString *)getNowTimeString3;
  26. /** 获取当前时间戳-以毫秒为单位-return NSInteger */
  27. + (NSInteger)getNowTimeStampSS;
  28. /** 获取当前时间戳-以毫秒为单位--return YYYYMMddhhmmssSSS */
  29. + (NSString *)getNowTimeStampString;
  30. /** 获取当前时间戳-以天为单位--return yyyy-MM-dd */
  31. + (NSString *)getNowDateString;
  32. /** 获取现在到某个时间点的时间戳*/
  33. + (NSInteger)getNowTimeStampToInterval:(NSTimeInterval)second;
  34. /** 把字符串转时间戳Date YYYYMMddhhmmssSSS*/
  35. + (NSDate *)getTimeStringToDate:(NSString *)timeStr;
  36. /**时间戳转字符串-yyyy/MM/dd HH:mm*/
  37. + (NSString *)getTimeStringFromTimeInterval:(NSInteger)timeInterval;
  38. /** 秒转播放时间HH:mm:ss */
  39. + (NSString *)getPlayTimeStringFromTimeInterval:(NSTimeInterval)timeInterval;
  40. /** 把字符串转时间戳Date YYYYMMddhhmmssSSS 2024-05-24 20:44:57 返回 x天 多少时 多少分*/
  41. + (NSString *)getTimeStringToExpirationDate:(NSString *)timeStr;
  42. #pragma mark 通讯录备份
  43. //ypp add 通讯录文件名格式YmdHis+随机数字(1000~9999) 2020 07 07 15 08 25 1000
  44. + (NSString *)getContactsNameStr;
  45. #pragma mark 绘制图片
  46. /** 根据颜色绘制图片 */
  47. + (UIImage*)createImageWithColor:(UIColor*)color;
  48. /** 根据颜色和view 绘制指定大小的图片 */
  49. + (UIImage *)imageFromColor:(UIColor *)color view:(UIView *)view;
  50. /** 根据颜色和rect 绘制指定大小的图片 */
  51. + (UIImage *)getImageFromColor:(UIColor *)color rect:(CGRect)rect;
  52. /** 根据颜色和size 绘制指定大小的图片 */
  53. + (UIImage *)createImageWithColor:(UIColor *)color withSize:(CGSize)size;
  54. /**根据uiview得到图像UIImage*/
  55. + (UIImage *)getImageFromView:(UIView *)fromView useScreenScale:(BOOL)use useNewMethod:(BOOL)useNewMethod;
  56. /**彩色图变黑白图*/
  57. + (UIImage*)getGrayImageFromImage:(UIImage*)sourceImage;
  58. #pragma mark 绘制圆角
  59. /**圆角切割*/
  60. + (CAShapeLayer *)getCornerRoundWithSelfView:(UIView *)originalView byRoundingCorners:(UIRectCorner)corners cornerRect:(CGRect)rect;
  61. + (CAShapeLayer *)getCornerRoundWithSelfView:(UIView *)originalView byRoundingCorners:(UIRectCorner)corners cornerRect:(CGRect)rect radius:(CGFloat)radius;
  62. #pragma mark 小数取整 (不四舍五入)
  63. /** 小数取整 不四舍五入 */
  64. + (NSString *)notRounding:(float)price afterPoint:(int)position;
  65. /** 小数取整 不四舍五入 */
  66. + (CGFloat)notRoundingFloat:(float)price afterPoint:(int)position;
  67. /** 小数点格式化*/
  68. + (NSString *)formatFloat:(float)f;
  69. #pragma mark 字符串处理
  70. /** 去除字符串中所有的空格和换行符(包括中间和首尾) */
  71. + (NSString *)removeSpaceAndNewline:(NSString *)str;
  72. /** 获取拼音首字母(传入汉字字符串, 返回大写拼音首字母)*/
  73. + (NSString *)FirstCharactor:(NSString *)pString;
  74. #pragma mark 系统语言
  75. /** 获取当前系统的语言 */
  76. + (NSString *)getCurrentLocalizableLanguage;
  77. /** 当前语言是否为中文 */
  78. + (BOOL)isChineseLanguage; /** 得到当前语言是否为中文 */
  79. #pragma mark push到指定vc
  80. /**push到vc 控制器
  81. * 1、NavigationController之前有push过就back
  82. * 2、NavigationController之前没有push过就push
  83. */
  84. + (void)pushVCWithBackOrPushFromNvc:(UINavigationController *)nvc toVc:(UIViewController *)vc;
  85. #pragma mark 文件大小格式化
  86. /**将文件大小B 自动转成对应的B KB MB GB**/
  87. + (NSString *)getFileSizeStringFormedValue:(NSInteger)value;
  88. #pragma mark 获取文件MD5值
  89. /**获取文件MD5值*/
  90. + (NSString*)getFileMD5WithPath:(NSString*)path;
  91. #pragma mark 关闭声音
  92. /**关闭其他播放声音*/
  93. + (void)closeVoice;
  94. #pragma mark 其他
  95. /**防止N秒内,同部同接口频繁调用的处理*/
  96. + (BOOL)timeOverTosecode:(NSInteger)index bannerOldTime:(NSString *)bannerOldTime;
  97. /**根据文件ID 获取文件中心文件URL地址*/
  98. + (NSURL *)getFileUrlFromFileID:(NSString *)ID;
  99. /**显示Base64二进制图片*/
  100. + (void)setImageView:(UIImageView *)imageView WithBase64String:(NSString *)avatar;
  101. // iOS裁剪掉图片周围透明度为0的部分
  102. + (UIImage *)cutAlphaZero:(UIImage *)image;
  103. /**push到vc 控制器
  104. * 1、NavigationController之前有push过就back
  105. * 2、NavigationController之前没有push过就push
  106. */
  107. + (void)pushVCWithBackOrPushFromNvc:(UINavigationController *)nvc toVc:(UIViewController *)vc;
  108. /**获取phoneId在CloudPhoneList中的索引*/
  109. + (NSUInteger)getIndexFromCloudPhoneListWithPhoneID:(NSInteger)phoneId;
  110. /*获取网络时间*/
  111. + (NSDate *)getInternetDate;
  112. + (NSString *)getInternetDateString;
  113. + (UIWindow *)getKeyWindow;
  114. //
  115. + (NSString *)getTaskUidStr;
  116. //更换图标
  117. + (void)lc_setAlternateIconName:(NSString*)iconName;
  118. + (UIViewController *)appRootViewController;
  119. //压缩图片对对应尺寸
  120. + (UIImage*)OriginImage:(UIImage *)image scaleToSize:(CGSize)size;
  121. // 时间戳转时间,时间戳为13位是精确到毫秒的,10位精确到秒
  122. + (NSString *)getDateStringWithTimeStr:(NSString* )str;
  123. // 文件夹大小(字节)
  124. + (unsigned long long)folderSizeAtPath:(NSString *)folderPath;
  125. //单个文件的大小(字节)
  126. +(unsigned long long)fileSizeAtPath:(NSString *)filePath;
  127. + (NSArray *)toArrayWithJsonStr:(NSString *)jsonStr;
  128. + (NSString *)toJsonStrWithArray:(NSArray *)arr;
  129. //判断图片和视频能不能保存到相册
  130. + (BOOL)canSaveFileToAlbumByPhoto:(BOOL)isPhotoType withName:(NSString*)nameStr;
  131. //判断是否为音频文件
  132. + (BOOL)isAudioFilewithName:(NSString*)nameStr;
  133. //判断是否为视频文件
  134. + (BOOL)isVideoFilewithName:(NSString*)nameStr;
  135. //判断是否为相片文件
  136. + (BOOL)isPhotoFilewithName:(NSString*)nameStr;
  137. // base64 url 编码
  138. + (NSString *)base64UrlEncoder:(NSString *)str;
  139. // base64 url 解码
  140. + (NSString *)base64UrlDecoder:(NSString *)str;
  141. //获取机型
  142. + (NSString *)getCurrentDeviceModel;
  143. //检测真机空间是否足够下载 两倍 文件长度 或者大于 1G
  144. + (BOOL)checkFreeDiskSpaceInBytesIsOK:(long)fileByte;
  145. //传输用的路径换成显示的路径
  146. + (NSString *)changePathToShowPathBy:(NSString*)path;
  147. //获取文件大小
  148. + (unsigned long long)getFileSize:(NSString *)filePath;
  149. @end
  150. NS_ASSUME_NONNULL_END