Files
keyboard/Pods/LYEmptyView/LYEmptyView/LYEmptyBaseView.m
2025-11-09 20:54:14 +08:00

213 lines
6.7 KiB
Objective-C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//
// LYEmptyBaseView.h
// LYEmptyViewDemo
//
// Created by liyang on 2017/5/5.
// Copyright © 2017年 liyang. All rights reserved.
//
#import "LYEmptyBaseView.h"
@interface LYEmptyBaseView ()
@end
@implementation LYEmptyBaseView
#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.ly_width = view.ly_width;
self.ly_height = view.ly_height;
}
[self setupSubviews];
}
- (void)setupSubviews{
}
- (void)willMoveToSuperview:(UIView *)newSuperview
{
[super willMoveToSuperview:newSuperview];
//不是UIView不做操作
if (newSuperview && ![newSuperview isKindOfClass:[UIView class]]) return;
if (newSuperview) {
self.ly_width = newSuperview.ly_width;
self.ly_height = newSuperview.ly_height;
}
}
#pragma mark - ------------------ 实例化 ------------------
+ (instancetype)emptyActionViewWithImage:(UIImage *)image
titleStr:(NSString *)titleStr
detailStr:(NSString *)detailStr
btnTitleStr:(NSString *)btnTitleStr
target:(id)target
action:(SEL)action{
LYEmptyBaseView *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:(LYActionTapBlock)btnClickBlock{
LYEmptyBaseView *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{
LYEmptyBaseView *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:(LYActionTapBlock)btnClickBlock{
LYEmptyBaseView *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{
LYEmptyBaseView *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{
LYEmptyBaseView *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{
LYEmptyBaseView *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:(LYActionTapBlock)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