SLMethod.h 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. //
  2. // SLMethod.h
  3. // DarkMode
  4. //
  5. // Created by wsl on 2020/4/24.
  6. // Copyright © 2020 https://github.com/wsl2ls ----- . All rights reserved.
  7. //
  8. #import <Foundation/Foundation.h>
  9. NS_ASSUME_NONNULL_BEGIN
  10. //四个圆角半径
  11. struct SLCornerRadii {
  12. CGFloat topLeft; //左上
  13. CGFloat topRight; //右上
  14. CGFloat bottomLeft; //左下
  15. CGFloat bottomRight; //右下
  16. };
  17. typedef struct CG_BOXABLE SLCornerRadii SLCornerRadii;
  18. //SLCornerRadii初始化函数
  19. CG_INLINE SLCornerRadii SLCornerRadiiMake(CGFloat topLeft,CGFloat topRight,CGFloat bottomLeft,CGFloat bottomRight){
  20. return (SLCornerRadii){
  21. topLeft,
  22. topRight,
  23. bottomLeft,
  24. bottomRight,
  25. };
  26. }
  27. static NSString * const SLUserDefaultsKey = @"SLUserDefaultsKey";
  28. /// 辅助公共方法集合
  29. @interface SLMethod : NSObject
  30. /// 以SLUserDefaultsKey为根key,统一管理userDefaults存储的数据
  31. + (void)userDefaultsSetObject:(nullable id)value forKey:(NSString *)key;
  32. + (id)userDefaultsObjectForKey:(NSString *)key;
  33. /**
  34. * 动态计算文字的宽高
  35. * @param text 文字
  36. * @param font 文字的font
  37. * @param maxSize 最大 size
  38. * @return 返回text的size
  39. */
  40. + (CGSize)sizeFromText:(NSString *)text textFont:(UIFont *)font maxSize:(CGSize)maxSize;
  41. /**
  42. 动态计算属性字符串的宽高
  43. @param attributedText 属性字符串
  44. @param maxSize 最大 size
  45. @return 返回属性字符串的size
  46. */
  47. + (CGSize)sizeFromAttributedText:(NSAttributedString *)attributedText maxSize:(CGSize)maxSize;
  48. /// 切四个不同半径圆角的函数
  49. /// @param bounds 区域
  50. /// @param cornerRadii 四个圆角的半径
  51. + (CGPathRef)cornerPathCreateWithRoundedRect:(CGRect)bounds cornerRadii:(SLCornerRadii)cornerRadii;
  52. @end
  53. NS_ASSUME_NONNULL_END