如图:
直接拷贝以下内容修改自己的图片以及cell即可
//MARK: 设置左滑按钮的样式
- (void)setupSlideBtnWithEditingIndexPath:(NSIndexPath *)editingIndexPath {
// 判断系统是否是 iOS13 及以上版本
if(@available(iOS 13.0, *)) {
for(UIView*subViewinself.tableView.subviews) {
if([subViewisKindOfClass:NSClassFromString(@"_UITableViewCellSwipeContainerView")] && [subView.subviewscount] >= 1) {
// 修改图片
UIView*remarkContentView = subView.subviews.firstObject;
[selfsetupRowActionView:remarkContentView];
}
}
return;
}
// 判断系统是否是 iOS11 及以上版本
if(@available(iOS 11.0, *)) {
for(UIView*subViewinself.tableView.subviews) {
if([subViewisKindOfClass:NSClassFromString(@"UISwipeActionPullView")] && [subView.subviewscount] >= 1) {
// 修改图片
UIView*remarkContentView = subView;
[selfsetupRowActionView:remarkContentView];
}
}
return;
}
// iOS11 以下的版本
setTimeViewCell *cell = [self.tableView cellForRowAtIndexPath:editingIndexPath];
for(UIView*subViewincell.subviews) {
if([subViewisKindOfClass:NSClassFromString(@"UITableViewCellDeleteConfirmationView")] && [subView.subviewscount] >= 1) {
// 修改图片
UIView*remarkContentView = subView;
[selfsetupRowActionView:remarkContentView];
}
}
}
- (void)tableView:(UITableView *)tableView willBeginEditingRowAtIndexPath:(NSIndexPath *)indexPath{
dispatch_async(dispatch_get_main_queue(), ^{
[self setupSlideBtnWithEditingIndexPath:indexPath];
});
}
- (NSArray*)tableView:(UITableView *)tableView editActionsForRowAtIndexPath:(nonnull NSIndexPath *)indexPath{
//title不设为nil 而是空字符串 理由为啥 ? 自己实践 跑到ios11以下的机器上就知道为啥了
UITableViewRowAction *deleteAction = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleNormal title:@" " handler:^(UITableViewRowAction *action, NSIndexPath *indexPath){
NSLog(@"哈哈哈哈");
[tableViewsetEditing:NOanimated:YES]; // 这句很重要,退出编辑模式,隐藏左滑菜单
}];
return@[deleteAction];
}
- (void)setupRowActionView:(UIView*)rowActionView {
// 切割圆角
// [rowActionView cl_setCornerAllRadiusWithRadiu:20];
// 改变父 View 的frame,这句话是因为我在 contentView 里加了另一个 View,为了使划出的按钮能与其达到同一高度
CGRectframe = rowActionView.frame;
frame.origin.y+= (7);
frame.size.height-= (13);
rowActionView.frame= frame;
// 拿到按钮,设置
UIButton*button = rowActionView.subviews.firstObject;
[buttonsetImage:[UIImage imageNamed:@"删除 (1)"] forState:UIControlStateNormal];
[buttonsetTitle:@"" forState:UIControlStateNormal];
}
网友评论