You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
167 lines
4.9 KiB
167 lines
4.9 KiB
// |
|
// CommonTableView.m |
|
// ChineseAgri-businesses |
|
// |
|
// Created by ecell on 2022/6/28. |
|
// |
|
|
|
#import "CommonTableView.h" |
|
|
|
@interface CommonTableView ()<UITableViewDelegate,UITableViewDataSource> |
|
|
|
|
|
/// 声明自定义类型变量 |
|
@property(nonatomic,copy)CreateCell createCell; |
|
|
|
/// 声明自定义类型变量 |
|
@property (nonatomic,copy)SelectCell selectBlock; |
|
|
|
|
|
@property (nonatomic,copy)disScrollView didscorllView; |
|
|
|
@property (nonatomic ,strong) Class commonCell; |
|
|
|
|
|
|
|
@end |
|
|
|
@implementation CommonTableView |
|
|
|
/// UITableView初始化加载 |
|
/// @param frame UITableView坐标大小 |
|
/// @param style 样式 |
|
/// @param cellHeight 行高 |
|
/// @param cellRow 行数 |
|
/// @param isAdaptive 行高是否自适应 |
|
/// @param isLine 是否显示间隔线 |
|
/// @param commonCell 加载Cell |
|
/// @param createCell 返回创建的cell |
|
/// @param selectBlock cell点击事件 |
|
- (instancetype)initWithFrame:(CGRect)frame |
|
style:(UITableViewStyle)style |
|
cellHeight:(CGFloat)cellHeight |
|
cellRow:(NSInteger)cellRow |
|
isAdaptive:(BOOL)isAdaptive |
|
isLine:(BOOL)isLine |
|
commonCell:(Class)commonCell |
|
createCell:(CreateCell)createCell |
|
selectedCell:(SelectCell)selectBlock |
|
DidscrollView:(disScrollView)ScrollView |
|
{ |
|
self = [super initWithFrame:frame style:style]; |
|
if (self) { |
|
self.delegate = self; |
|
self.dataSource = self; |
|
//self.separatorColor = KKLineColor; |
|
if (@available(iOS 11.0, *)){ |
|
[[UIScrollView appearance] setContentInsetAdjustmentBehavior:UIScrollViewContentInsetAdjustmentNever]; |
|
} |
|
//self.backgroundColor = KKClearColor; |
|
//初始化tableview时,添加代码如下 |
|
if (isAdaptive) |
|
self.estimatedRowHeight = cellHeight; |
|
else |
|
self.rowHeight = cellHeight; |
|
self.estimatedSectionHeaderHeight = 0; |
|
self.estimatedSectionFooterHeight = 0; |
|
self.isEditing = NO; |
|
if (!isLine) |
|
self.separatorStyle = UITableViewCellSeparatorStyleNone; |
|
|
|
[self registerClass:commonCell.class forCellReuseIdentifier:NSStringFromClass(commonCell.class)]; |
|
self.showsVerticalScrollIndicator = NO; |
|
|
|
self.createCell = createCell; |
|
self.selectBlock = selectBlock; |
|
self.commonCell = commonCell; |
|
self.didscorllView = ScrollView; |
|
self.tableFooterView = [[UIView alloc]init]; |
|
self.cellRow = cellRow; |
|
self.cellSections = 1; |
|
#if __IPHONE_OS_VERSION_MAX_ALLOWED > __IPHONE_14_5 |
|
if (@available(iOS 15.0, *)) { |
|
self.sectionHeaderTopPadding = 0; |
|
} |
|
#endif |
|
|
|
} |
|
return self; |
|
} |
|
|
|
- (void)setCellRow:(NSInteger)cellRow |
|
{ |
|
_cellRow = cellRow; |
|
} |
|
|
|
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath |
|
{ |
|
ZZTableViewCell *cell = (ZZTableViewCell *)self.commonCell; |
|
cell = [self.commonCell cellWithTableView:tableView indexPath:indexPath]; |
|
self.createCell(cell, indexPath); |
|
return cell; |
|
} |
|
|
|
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath |
|
{ |
|
[tableView deselectRowAtIndexPath:indexPath animated:YES]; |
|
self.selectBlock(tableView,indexPath); |
|
} |
|
|
|
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section |
|
{ |
|
return self.cellRow; |
|
} |
|
|
|
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView |
|
{ |
|
return self.cellSections; |
|
} |
|
|
|
#pragma mark - UIScrollViewDelegate |
|
- (void)scrollViewDidScroll:(UIScrollView *)scrollView |
|
{ |
|
self.didscorllView(scrollView); |
|
} |
|
|
|
- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section |
|
{ |
|
return Adapted(self.footerViewHeight); |
|
} |
|
|
|
- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section |
|
{ |
|
return self.footerView; |
|
} |
|
|
|
//使用系统默认的删除按钮 |
|
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath |
|
{ |
|
if (editingStyle == UITableViewCellEditingStyleDelete) |
|
{ |
|
if ([self.delegates respondsToSelector:@selector(CommTableView:commitEditingStyle:forRowAtIndexPath:)]) |
|
{ |
|
[self.delegates CommTableView:tableView commitEditingStyle:editingStyle forRowAtIndexPath:indexPath]; |
|
} |
|
} |
|
} |
|
//自定义系统默认的删除按钮文字 |
|
- (NSString *)tableView:(UITableView *)tableView titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath *)indexPath |
|
{ |
|
return @"删除"; |
|
} |
|
|
|
-(UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath |
|
{ // 删除 |
|
return self.isEditing ? UITableViewCellEditingStyleDelete : UITableViewCellEditingStyleNone; |
|
} |
|
|
|
|
|
/* |
|
// Only override drawRect: if you perform custom drawing. |
|
// An empty implementation adversely affects performance during animation. |
|
- (void)drawRect:(CGRect)rect { |
|
// Drawing code |
|
} |
|
*/ |
|
|
|
@end
|
|
|