美文网首页开发锦集
iOS cell 左滑删除修改样式

iOS cell 左滑删除修改样式

作者: YvanLiu | 来源:发表于2018-04-30 11:48 被阅读171次

1、 controller.m

- (NSArray<UITableViewRowAction *> *)tableView:(UITableView *)tableView editActionsForRowAtIndexPath:(NSIndexPath *)indexPath{
    //刷新cell布局,解决有时候图片无法显示出来的问题
     UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
    cell.isEdit =self.isEdit;
    [cell setNeedsLayout];
    UITableViewRowAction *delegateAction = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleDefault title:@"删除" handler:^(UITableViewRowAction *action, NSIndexPath *indexPath) {
       ...
    }];
    return @[delegateAction];
}

2、tableViewCell.m

//左划出现分类与删除图标
- (void)layoutSubviews {
    [super layoutSubviews];
    [self setDealDeleteButtonAndClassButton];
}
- (void)setDealDeleteButtonAndClassButton{
    
    NSString *version = [UIDevice currentDevice].systemVersion;
    if (version.doubleValue>=11) {
        // iOS 11层级 (Xcode 9编译): UITableView -> UISwipeActionPullView
        for (UIView *subview in self.superview.subviews) {
            if ([subview isKindOfClass:NSClassFromString(@"UISwipeActionPullView")])  {
                // 和iOS 10的按钮顺序相反
                UIButton *deleteButton = subview.subviews[0];
                [deleteButton setImage:[UIImage imageNamed:@"OneTime_finish2"] forState:(UIControlStateNormal)];
                [deleteButton setTitle:@"" forState:UIControlStateNormal];
            }
        }
    } else {
        // iOS 9-10层级
        for (UIView *subview in self.subviews) {
            if ([subview isKindOfClass:NSClassFromString(@"UITableViewCellDeleteConfirmationView")]) {
                UIButton *deleteButton = subview.subviews[0];
                [deleteButton setImage:[UIImage imageNamed:@"OneTime_finish2"] forState:UIControlStateNormal];
                [deleteButton setTitle:@"" forState:UIControlStateNormal];
            }
        }
    }
}

相关文章

网友评论

  • 厚脸皮小强打不死的小强:哥们,你这不行啊,获取不到
    厚脸皮小强打不死的小强:@YvanLiu 我在控制器里实现那个遍历方法,可以
    YvanLiu:- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath
    -(UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath
    这两个实现了么
    YvanLiu:什么获取不到?获取不到按钮还是获取不到方法?

本文标题:iOS cell 左滑删除修改样式

本文链接:https://www.haomeiwen.com/subject/neuzlftx.html