iOS 自定义侧滑删除样式(调整高度、颜色等)

项目中需要自定义iOS侧滑删除按钮定制,平常正常使用,但是在分多个组,且tableview UI相对复杂,侧滑需要定制。

1、查阅相关资料 发现分iOS 11 和iOS11之前的
分别处理方式不同

iOS11之前的在cell里面使用一下方法  其方法是在加载子类时候修改删除按钮样式

// 改变滑动删除按钮样式 记住是在”cell里面“

- (void)layoutSubviews {

     [super layoutSubviews];

    for(UIView*subViewinself.subviews){

    if([subView isKindOfClass:NSClassFromString(@"UITableViewCellDeleteConfirmationView")]) {

        CGRectcRect = subView.frame;

        //删除按钮显示范围

        CGFloatadjustheight =10;

        if(self.identityType==2) {

            adjustheight =1;

        }

        cRect.size.height=69;

        cRect.origin.y= adjustheight;

        subView.frame= cRect;

        }

    }

}

在iOS11之后,系统为我们提供了对应的函数   其本质是从TableView 里面找到 UISwipeActionPullView 然后修改样式

//iOS11 处理

- (void)viewDidLayoutSubviews {

    [super viewDidLayoutSubviews];

    if (self.editingIndexPath && (IOS_VERSION_11_OR_LATER)) {

        [self configSwipeButton];

    }

}

- (void)configSwipeButton{

    // iOS 11层级: UITableView -> UISwipeActionPullView

    for(UIView*subviewinself.tableView.subviews) {

        if ([subview isKindOfClass:NSClassFromString(@"UISwipeActionPullView")]){

            subview.backgroundColor = [UIColor clearColor];

            UIButton*deleteBtn = subview.subviews.firstObject;

            CGRectcRect = deleteBtn.frame;

            //删除按钮显示范围

            CGFloatadjust =10;

            if(self.onlyOneSection) {

                adjust =0;

            }

            cRect.size.height=69;

            cRect.origin.y= adjust;

            deleteBtn.frame= cRect;

        }

    }

}

你可能感兴趣的:(iOS 自定义侧滑删除样式(调整高度、颜色等))