YMEmptyBaseView.h 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  1. //
  2. // YMEmptyBaseView.h
  3. // MSYOUPAI
  4. //
  5. // Created by YoMi on 2023/11/6.
  6. //
  7. #import <UIKit/UIKit.h>
  8. #import "UIView+YMEmptyExtension.h"
  9. //事件回调
  10. typedef void (^YMActionTapBlock)(void);
  11. @interface YMEmptyBaseView : UIView
  12. /////////属性传递(可修改)
  13. /* image 的优先级大于 imageStr,只有一个有效*/
  14. @property (nonatomic, strong)UIImage *image;
  15. @property (nonatomic, copy) NSString *imageStr;
  16. @property (nonatomic, copy) NSString *titleStr;
  17. @property (nonatomic, copy) NSString *detailStr;
  18. @property (nonatomic, copy) NSString *btnTitleStr;
  19. /////////属性传递 (只读)
  20. @property (nonatomic,strong,readonly) UIView *contentView;
  21. @property (nonatomic, weak, readonly) id actionBtnTarget;
  22. @property (nonatomic,assign,readonly) SEL actionBtnAction;
  23. @property (nonatomic, copy, readonly) YMActionTapBlock btnClickBlock;
  24. @property (nonatomic,strong,readonly) UIView *customView;
  25. /**
  26. emptyView点击事件
  27. */
  28. @property (nonatomic, copy) YMActionTapBlock tapEmptyViewBlock;
  29. ///初始化配置
  30. - (void)prepare;
  31. ///重置Subviews
  32. - (void)setupSubviews;
  33. /**
  34. 构造方法 - 创建emptyView
  35. @param image 占位图片
  36. @param titleStr 标题
  37. @param detailStr 详细描述
  38. @param btnTitleStr 按钮的名称
  39. @param target 响应的对象
  40. @param action 按钮点击事件
  41. @return 返回一个emptyView
  42. */
  43. + (instancetype)emptyActionViewWithImage:(UIImage *)image
  44. titleStr:(NSString *)titleStr
  45. detailStr:(NSString *)detailStr
  46. btnTitleStr:(NSString *)btnTitleStr
  47. target:(id)target
  48. action:(SEL)action;
  49. /**
  50. 构造方法 - 创建emptyView
  51. @param image 占位图片
  52. @param titleStr 占位描述
  53. @param detailStr 详细描述
  54. @param btnTitleStr 按钮的名称
  55. @param btnClickBlock 按钮点击事件回调
  56. @return 返回一个emptyView
  57. */
  58. + (instancetype)emptyActionViewWithImage:(UIImage *)image
  59. titleStr:(NSString *)titleStr
  60. detailStr:(NSString *)detailStr
  61. btnTitleStr:(NSString *)btnTitleStr
  62. btnClickBlock:(YMActionTapBlock)btnClickBlock;
  63. /**
  64. 构造方法 - 创建emptyView
  65. @param imageStr 占位图片名称
  66. @param titleStr 标题
  67. @param detailStr 详细描述
  68. @param btnTitleStr 按钮的名称
  69. @param target 响应的对象
  70. @param action 按钮点击事件
  71. @return 返回一个emptyView
  72. */
  73. + (instancetype)emptyActionViewWithImageStr:(NSString *)imageStr
  74. titleStr:(NSString *)titleStr
  75. detailStr:(NSString *)detailStr
  76. btnTitleStr:(NSString *)btnTitleStr
  77. target:(id)target
  78. action:(SEL)action;
  79. /**
  80. 构造方法 - 创建emptyView
  81. @param imageStr 占位图片名称
  82. @param titleStr 占位描述
  83. @param detailStr 详细描述
  84. @param btnTitleStr 按钮的名称
  85. @param btnClickBlock 按钮点击事件回调
  86. @return 返回一个emptyView
  87. */
  88. + (instancetype)emptyActionViewWithImageStr:(NSString *)imageStr
  89. titleStr:(NSString *)titleStr
  90. detailStr:(NSString *)detailStr
  91. btnTitleStr:(NSString *)btnTitleStr
  92. btnClickBlock:(YMActionTapBlock)btnClickBlock;
  93. /**
  94. 构造方法 - 创建emptyView
  95. @param image 占位图片
  96. @param titleStr 占位描述
  97. @param detailStr 详细描述
  98. @return 返回一个没有点击事件的emptyView
  99. */
  100. + (instancetype)emptyViewWithImage:(UIImage *)image
  101. titleStr:(NSString *)titleStr
  102. detailStr:(NSString *)detailStr;
  103. /**
  104. 构造方法 - 创建emptyView
  105. @param imageStr 占位图片名称
  106. @param titleStr 占位描述
  107. @param detailStr 详细描述
  108. @return 返回一个没有点击事件的emptyView
  109. */
  110. + (instancetype)emptyViewWithImageStr:(NSString *)imageStr
  111. titleStr:(NSString *)titleStr
  112. detailStr:(NSString *)detailStr;
  113. /**
  114. 构造方法 - 创建一个自定义的emptyView
  115. @param customView 自定义view
  116. @return 返回一个自定义内容的emptyView
  117. */
  118. + (instancetype)emptyViewWithCustomView:(UIView *)customView;
  119. @end