UIView+JKAdd.h 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. //
  2. // UIView+JKAdd.h
  3. // JKBusinessBase
  4. // UIView相关的公共扩展方法
  5. // Created by durgiya on 2022/3/1.
  6. //
  7. #import <UIKit/UIKit.h>
  8. NS_ASSUME_NONNULL_BEGIN
  9. @interface UIView (JKAdd)
  10. #pragma mark - 视图添加边线相关方法
  11. /// 视图底部添加线条
  12. /// @param color 线条颜色
  13. - (void)jk_addBottomLine:(UIColor *)color;
  14. /// 视图底部添加线条
  15. /// @param color 线条颜色
  16. /// @param left 线条距离视图左侧的距离
  17. - (void)jk_addBottomLine:(UIColor *)color marginLeft:(CGFloat)left;
  18. /// 视图底部添加线条
  19. /// @param color 线条颜色
  20. /// @param right 线条距离视图右侧的距离
  21. - (void)jk_addBottomLine:(UIColor *)color marginRight:(CGFloat)right;
  22. /// 视图中间添加水平线条
  23. /// @param color 线条颜色
  24. - (void)jk_addMiddleLine:(UIColor *)color;
  25. /// 视图顶部添加线条
  26. /// @param color 线条颜色
  27. - (void)jk_addTopLine:(UIColor *)color;
  28. #pragma mark - 添加阴影的相关方法
  29. /// 视图添加阴影
  30. /// @param color 阴影颜色
  31. /// @param opacity 阴影透明度
  32. /// @param radius 阴影半径
  33. /// @param offset 阴影偏移
  34. /// @param shadowRect 阴影路径 若不设置则使用 CGRectNull
  35. - (void)jk_addShadowWithShadowColor:(UIColor *)color
  36. shadowOpacity:(CGFloat)opacity
  37. shadowRadius:(CGFloat)radius
  38. shadowOffset:(CGSize)offset
  39. shadowPathRect:(CGRect)shadowRect;
  40. #pragma mark - 坐标相关方法
  41. /// 视图左侧距父视图的距离
  42. @property (nonatomic, assign) CGFloat jk_left;
  43. /// 视图顶部距父视图的距离
  44. @property (nonatomic, assign) CGFloat jk_top;
  45. /// 视图右侧距父视图的距离
  46. @property (nonatomic, assign) CGFloat jk_right;
  47. /// 视图底部距父视图的距离
  48. @property (nonatomic, assign) CGFloat jk_bottom;
  49. /// 视图中心在父视图水平方向的位置
  50. @property (nonatomic, assign) CGFloat jk_centerX;
  51. /// 视图中心在父视图垂直方向的位置
  52. @property (nonatomic, assign) CGFloat jk_centerY;
  53. /// 视图的宽度
  54. @property (nonatomic, assign) CGFloat jk_width;
  55. /// 视图的高度
  56. @property (nonatomic, assign) CGFloat jk_height;
  57. /// 视图的位置
  58. @property (nonatomic, assign) CGPoint jk_origin;
  59. /// 视图的尺寸
  60. @property (nonatomic, assign) CGSize jk_size;
  61. #pragma mark - 视图操作相关方法
  62. /// 移除所有子视图
  63. - (void)jk_removeAllSubviews;
  64. /// 为视图添加圆角
  65. /// @param corners 圆角的位置
  66. /// @param radii 圆角直径
  67. /// @param size 待绘制区域的尺寸
  68. - (void)jk_setCorners:(UIRectCorner)corners
  69. withRadii:(CGSize)radii
  70. size:(CGSize)size;
  71. /// 为视图添加圆角Layer
  72. /// @param color Layer背景颜色
  73. /// @param radius 圆角半径
  74. - (void)jk_addCornerLayer:(UIColor *)color cornerRadius:(CGFloat)radius;
  75. /// 通过xib加载对应的视图
  76. + (id)jk_loadFromXib;
  77. /// 加载pod私有库中的xib
  78. /// @param bundleName xib所在的bundle名称
  79. + (id)jk_podLoadFromXibWithBundleName:(NSString *)bundleName;
  80. /// 当UITableViewCell等视图的重用标识使用,实际就是当前类的类名
  81. + (NSString *)jk_cellIdentifier;
  82. /// 获取父视图中的UITableView
  83. - (UITableView *)jk_tableView;
  84. #pragma mark - 视图层级发生变更的相关逻辑
  85. /// 视图调用了addSubview之后的回调block,该block目前是在基类中给侧滑返回逻辑使用。如果其他地方使用,需要注意是否会影响控制器侧滑返回功能
  86. @property (nonatomic, copy) void(^jk_didAddsubView)(UIView *view);
  87. @end
  88. NS_ASSUME_NONNULL_END