123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211 |
- //
- // YMEmptyBaseView.m
- // MSYOUPAI
- //
- // Created by YoMi on 2023/11/6.
- //
- #import "YMEmptyBaseView.h"
- @interface YMEmptyBaseView ()
- @end
- @implementation YMEmptyBaseView
- #pragma mark - ------------------ Life Cycle ------------------
- - (instancetype)init
- {
- self = [super init];
- if (self) {
- [self initialize];
- [self prepare];
- }
- return self;
- }
- - (void)initialize{
- }
- - (void)prepare{
- self.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
- }
- - (void)layoutSubviews
- {
- [super layoutSubviews];
-
- UIView *view = self.superview;
- //不是UIView,不做操作
- if (view && [view isKindOfClass:[UIView class]]){
- self.ym_empty_width = view.ym_empty_width;
- self.ym_empty_height = view.ym_empty_height;
- }
-
- [self setupSubviews];
- }
- - (void)setupSubviews{
- }
- - (void)willMoveToSuperview:(UIView *)newSuperview
- {
- [super willMoveToSuperview:newSuperview];
-
- //不是UIView,不做操作
- if (newSuperview && ![newSuperview isKindOfClass:[UIView class]]) return;
-
- if (newSuperview) {
- self.ym_empty_width = newSuperview.ym_empty_width;
- self.ym_empty_height = newSuperview.ym_empty_height;
- }
- }
- #pragma mark - ------------------ 实例化 ------------------
- + (instancetype)emptyActionViewWithImage:(UIImage *)image
- titleStr:(NSString *)titleStr
- detailStr:(NSString *)detailStr
- btnTitleStr:(NSString *)btnTitleStr
- target:(id)target
- action:(SEL)action{
-
- YMEmptyBaseView *emptyView = [[self alloc] init];
- [emptyView creatEmptyViewWithImage:image imageStr:nil titleStr:titleStr detailStr:detailStr btnTitleStr:btnTitleStr target:target action:action btnClickBlock:nil];
-
- return emptyView;
- }
- + (instancetype)emptyActionViewWithImage:(UIImage *)image
- titleStr:(NSString *)titleStr
- detailStr:(NSString *)detailStr
- btnTitleStr:(NSString *)btnTitleStr
- btnClickBlock:(YMActionTapBlock)btnClickBlock{
-
- YMEmptyBaseView *emptyView = [[self alloc] init];
- [emptyView creatEmptyViewWithImage:image imageStr:nil titleStr:titleStr detailStr:detailStr btnTitleStr:btnTitleStr target:nil action:nil btnClickBlock:btnClickBlock];
-
- return emptyView;
- }
- + (instancetype)emptyActionViewWithImageStr:(NSString *)imageStr
- titleStr:(NSString *)titleStr
- detailStr:(NSString *)detailStr
- btnTitleStr:(NSString *)btnTitleStr
- target:(id)target
- action:(SEL)action{
-
- YMEmptyBaseView *emptyView = [[self alloc] init];
- [emptyView creatEmptyViewWithImage:nil imageStr:imageStr titleStr:titleStr detailStr:detailStr btnTitleStr:btnTitleStr target:target action:action btnClickBlock:nil];
-
- return emptyView;
- }
- + (instancetype)emptyActionViewWithImageStr:(NSString *)imageStr
- titleStr:(NSString *)titleStr
- detailStr:(NSString *)detailStr
- btnTitleStr:(NSString *)btnTitleStr
- btnClickBlock:(YMActionTapBlock)btnClickBlock{
-
- YMEmptyBaseView *emptyView = [[self alloc] init];
- [emptyView creatEmptyViewWithImage:nil imageStr:imageStr titleStr:titleStr detailStr:detailStr btnTitleStr:btnTitleStr target:nil action:nil btnClickBlock:btnClickBlock];
-
- return emptyView;
- }
- + (instancetype)emptyViewWithImage:(UIImage *)image
- titleStr:(NSString *)titleStr
- detailStr:(NSString *)detailStr{
-
- YMEmptyBaseView *emptyView = [[self alloc] init];
- [emptyView creatEmptyViewWithImage:image imageStr:nil titleStr:titleStr detailStr:detailStr btnTitleStr:nil target:nil action:nil btnClickBlock:nil];
-
- return emptyView;
- }
- + (instancetype)emptyViewWithImageStr:(NSString *)imageStr
- titleStr:(NSString *)titleStr
- detailStr:(NSString *)detailStr{
-
- YMEmptyBaseView *emptyView = [[self alloc] init];
- [emptyView creatEmptyViewWithImage:nil imageStr:imageStr titleStr:titleStr detailStr:detailStr btnTitleStr:nil target:nil action:nil btnClickBlock:nil];
-
- return emptyView;
- }
- + (instancetype)emptyViewWithCustomView:(UIView *)customView{
-
- YMEmptyBaseView *emptyView = [[self alloc] init];
- [emptyView creatEmptyViewWithCustomView:customView];
-
- return emptyView;
- }
- - (void)creatEmptyViewWithImage:(UIImage *)image imageStr:(NSString *)imageStr titleStr:(NSString *)titleStr detailStr:(NSString *)detailStr btnTitleStr:(NSString *)btnTitleStr target:(id)target action:(SEL)action btnClickBlock:(YMActionTapBlock)btnClickBlock{
-
- _image = image;
- _imageStr = imageStr;
- _titleStr = titleStr;
- _detailStr = detailStr;
- _btnTitleStr = btnTitleStr;
- _actionBtnTarget = target;
- _actionBtnAction = action;
- _btnClickBlock = btnClickBlock;
-
- //内容物背景视图
- if (!_contentView) {
- _contentView = [[UIView alloc] initWithFrame:CGRectZero];
- [self addSubview:_contentView];
- }
-
- UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapEmptyView:)];
- [self addGestureRecognizer:tap];
- }
- - (void)creatEmptyViewWithCustomView:(UIView *)customView{
-
- //内容物背景视图
- if (!_contentView) {
- _contentView = [[UIView alloc] initWithFrame:CGRectZero];
- [self addSubview:_contentView];
- }
-
- if (!_customView) {
- [_contentView addSubview:customView];
- }
- _customView = customView;
-
- UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapEmptyView:)];
- [self addGestureRecognizer:tap];
- }
- #pragma mark - ------------------ Event Method ------------------
- - (void)tapEmptyView:(UITapGestureRecognizer *)tap{
- if (_tapEmptyViewBlock) {
- _tapEmptyViewBlock();
- }
- }
- #pragma mark - ------------------ Setter ------------------
- - (void)setImage:(UIImage *)image{
- _image = image;
- [self setNeedsLayout];
- }
- - (void)setImageStr:(NSString *)imageStr{
- _imageStr = imageStr;
- [self setNeedsLayout];
- }
- - (void)setTitleStr:(NSString *)titleStr{
- _titleStr = titleStr;
- [self setNeedsLayout];
- }
- - (void)setDetailStr:(NSString *)detailStr{
- _detailStr = detailStr;
- [self setNeedsLayout];
- }
- - (void)setBtnTitleStr:(NSString *)btnTitleStr{
- _btnTitleStr = btnTitleStr;
- [self setNeedsLayout];
- }
- @end
|